接上一隨筆,這次學習針對圖像數據的訪問(Numpy.array) 在OpenCV中,使用 imread() 方法可以訪問圖像,其返回值是一個數組,而根據傳入的不同圖像,將會返回不同維度的數組。 針對返回的圖像數據,即數組,我們是可以進行操作的: 1 import cv2 2 3 # MyPic.pn ...
接上一隨筆,這次學習針對圖像數據的訪問(Numpy.array)
在OpenCV中,使用 imread() 方法可以訪問圖像,其返回值是一個數組,而根據傳入的不同圖像,將會返回不同維度的數組。
針對返回的圖像數據,即數組,我們是可以進行操作的:
1 import cv2 2 3 # MyPic.png圖像自行隨意創建一個原始字元轉換成圖像即可 4 img = cv2.imread('MyPic.png') 5 6 # 在array類中,可以使用[, , ]這種類型來訪問多維數組 7 img[0, 0] = [255, 255, 255]
此時,我們就將MyPic這張圖的(0, 0)這一像素點修改成了白色。
而在array類中有提供相應的item方法來便捷我們的上述操作:
1 # 修改這一點上的三元色中的某一色 2 img.itemset((0, 0, 0), 255) 3 # 獲取這一點上的像素值 4 img.item(0, 0, 0)
但是上述操作都是針對某一點的修改,只能做到有限的區域,當我們想操作更大的區域時,則可以使用切片(split):
1 img[0:100, 0:100, :] = 255
上述代碼將獲取圖像的左上角一個邊長為100的正方形區域,將顏色是修改為白色。
(註意:圖像處理中,img的索引分表代表 [y(height), x(width), channels],相對於我們數學意義上的XY軸,進行了一個調換, 其中左上角為原點(0,0))