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