学习笔记,看的某宝的一个视频学习的
返回值=图(位置参数)
灰度图读取像素
灰度度只有两维
d=img[78,155] print(d)彩色图读取像素 彩色图 有三个通道。 注意opencv读取的是BGR,非RGB
blue=img[78,155,0] green=img[78,150.1] red=img[78,150,2]如果没有指定通道 打印出的p有三个值,BGR
p=img[78,150]灰度图修改像素 直接赋值
img[78,150]=255彩色图修改像素 可以分通道赋值
img[78,150,0]=255 img[78,150,1]=255 img[78,150,2]=255可以直接赋值
img[78,150]=[255,255,255]灰度图
import cv2 img=cv2.imread('lena256.bmp',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变 p=img[100,100]#读取像素 print(p) img[100,100]=255 print(img[100,100])结果: 可以发现第100行,100列像素有73变到255 彩色图修改
修改一个通道
import cv2 i=cv2.imread("e:\\lesson\\image\\lenacolor.png",cv2.IMREAD_UNCHANGED) #请确保在指定目录下有彩色图像文件 print(i[100,100]) i[100,100,0]=255 print(i[100,100])同时修改三个通道
import cv2 i=cv2.imread("lenacolor.png",cv2.IMREAD_UNCHANGED) #请确保在指定目录下有彩色图像文件 #同时更改三个通道 print(i[100,100]) i[100,100]=[255,255,255] print(i[100,100])修改一个区域
import cv2 img=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变 cv2.imshow('image',img)#原图 #修改一个区域像素 img[100:150,100:150]=[0,0,255] cv2.imshow("newimage",img)#新图 cv2.waitKey(0) cv2.destroyAllWindows()读取像素 返回值=图像.item(位置参数) item:数组的指定元素作为适当的Python标量的副本 灰度图:
p=img.item(88,150)彩色图
print(i.item(100,100,0))#blue print(i.item(100,100,1))#green print(i.item(100,100,2))#red修改像素 图像名.itemset(位置,新值) 灰度图:
i.itemset((100,100),255)彩色图:
i.itemset((100,100,0),255) i.itemset((100,100,1),255) i.itemset((100,100,1),255)算例
import cv2 import numpy as np i=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改变 print(i.item(150, 120, 0))#读取原始像素 i.itemset((150, 120, 0),255)#修改 print(i.item(150, 120, 0))#修改之后像素结果:
总目录链接: python3+opencv学习笔记汇总目录(适合基础入门学习) 电气专业的计算机小白,写博文不容易,如果你觉得本文不错,点个赞支持下。谢谢