python3中访问像素点和设置像素点


python3:

访问单个像素:  

s = image[i, j]  #image是一个Mat类型的矩阵,image[i,j]返回的是一个元组

s是一个元组,包含像[i, j]的各通道分量的灰度值,可以通过下标来访问该元组的元素,如s[0]表示b颜色分量,对于灰度图像,直接表示该像素点的灰度值

上条语句也可以写成:

(b, g, r) = image[i, j]

 

设置单个像素点的值:

1 image[i, j] = (b, g, r)  #设置像素点[i, j]的的值
2 #也可以写成
3 s = (b, g, r)   #把(b, g, r)的值先赋值给元组s
4 image[i, j] = s
5                                   

 

获取图像中某一区域的所有像素:

1 newImage = image[i:j, m:n]  #python中的切片,返回的是指定大小的图像
2 #设置图像中某一区域内的像素的值
3 image[i:j, m:n] = (b, g, r)

 

还可以通过Numpy的函数(比上面方法快):array.item()和array.itemset()来访问

1 src.item(x, y, channel)   #访问像素(x, y)的某个通道的值
2 src.itemset((x, y, channel), value) #设置像素(x, y)的某个通道的值

 

通过img.shape这个属性,我们可以得到一个记录了图像行数、列数和通道数的元组(灰度图像则只返回行列数,通过这个可以区分图像是彩色的还是灰度的)。

像素点的数量可以通过img.size这个函数获得,图像的数据类型可以通过img.dtype来获得

1 #获取像素的属性, 其返回值是一个元组(height, weight, channels)
2 src.shape 
3 #获取像素某个指定属性
4 src.shape[number]  #number的取值为元组的下标,可取0,1,2
5 #获取图像像素点的数量
6 src.size
7 #获取图像的类型
8 src.dtype

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM