在读取图像的时候一般要用到如下的命令:
返回值=图像(位置参数),
这样能够定位到某一个位置的特定的像素,一般情况下可以分为两种图像,即为灰度图像和BGR图像,如果灰度图像时,p=img[100,100] print(p)
如果为BGR图像时,比如如下所示:会有3个通道,分别表示蓝、绿、红;返回值类型即为B、G、R的值。0、1、2代表的是图像的通道,就可以将该通道的值赋值给所属属性值。
blue=img[78,125,0]
print(blue)
green=img[78,125,l]
print(green)
red=img[78,125,2]
print(red)
如果没有指定所属通道值,如p=img[78,125] print(p)
时,这个时候就会出现三个通道的值,一块显示出来。
对于灰度值而言,修改像素值,比较简单,直接对其图像进行赋值就可以了,比如:img[86,78]=255
即可,print(img[86,78]) img[86,78]=255 print(img[86,78])
这时打印出的值即为修改之后的值。
对于BGR图像来说,可以对各个通道值的属性值进行修改。如:img[74,45,0]=250 img[74,45,1]=250 img[74,45,2]=250
同样还可以直接一次性对三个通道进行赋值,如下:img[74,45]=[250,250,250]
读取灰度图像值
import cv2
i =cv2.imread("D:\\Deeplearning\\lesson\\chapter2\\image\\lena256.bmp", cv2.IMREAD_UNCHANGED)
p=i[100, 100]
print(p)
赋值后:
i[100, 100]=255
print(p)
读取BGR图像
import cv2
i =cv2.imread("D:\\Deeplearning\\lesson\\chapter2\\image\\lenacolor.png", cv2.IMREAD_UNCHANGED)
p=i[100, 100]
print(p)
import cv2
i =cv2.imread("D:\\Deeplearning\\lesson\\chapter2\\image\\lenacolor.png", cv2.IMREAD_UNCHANGED)
print(i[100,100])
i[100,100]=[255,255,255]
print(i[100,100])
运行结果为:
如果修改很多个像素的时候:比如将一张图像的第100到150行,第100到150列的区域设为白色区域,代码如下:
import cv2
i =cv2.imread("D:\\Deeplearning\\lesson\\chapter2\\image\\lenacolor.png", cv2.IMREAD_UNCHANGED)
cv2.imshow("original",i)
i[100:150,100:150]=[255,255,255]
cv2.imshow("result",i)
cv2.waitKey(0) //能够使程序退出
cv2.destroyAllWindows()
运行后的结果为:
————本小结完。