OpenCV入门基础操作(二)----图像像素的处理

OpenCV入门基础操作(二)----图像像素的处理

  • 像素处理
    • 读取一个图像像素
    • 修改像素值
    • 代码案例

像素处理

读取一个图像像素

在读取图像的时候一般要用到如下的命令:
返回值=图像(位置参数),
这样能够定位到某一个位置的特定的像素,一般情况下可以分为两种图像,即为灰度图像和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)

运行后结果为:
OpenCV入门基础操作(二)----图像像素的处理_第1张图片
修改通道的属性值:

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])

运行结果为:
OpenCV入门基础操作(二)----图像像素的处理_第2张图片
如果修改很多个像素的时候:比如将一张图像的第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()

运行后的结果为:

————本小结完。

你可能感兴趣的:(图像处理,opencv,计算机视觉,python,图像识别)