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)

运行后结果为:
BGR通道的值分别为78、68、178在这里插入图片描述
修改通道的属性值:

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

运行后的结果为:
在这里插入图片描述
————本小结完。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值