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