OpenCV Python - 影像屬性



OpenCV 讀取影像資料到 NumPy 陣列中。此 ndarray 物件的 shape() 方法揭示了影像屬性,例如尺寸和通道。

使用 shape() 方法的命令如下:

>>> img = cv.imread("OpenCV_Logo.png", 1)
>>> img.shape
(222, 180, 3)

在上述命令中:

  • 前兩項 shape[0] 和 shape[1] 分別表示影像的寬度和高度。
  • Shape[2] 代表通道數。
  • 3 表示影像具有紅綠藍 (RGB) 通道。

類似地,size 屬性返回影像的大小。影像大小的命令如下:

>>> img.size
119880

ndarray 中的每個元素都表示一個影像畫素。

藉助下面提到的命令,我們可以訪問和操作任何畫素的值。

>>> p=img[50,50]
>>> p
array([ 1, 1, 255], dtype=uint8)

示例

以下程式碼將前 100X100 個畫素的顏色值更改為黑色。imshow() 函式可以驗證結果。

>>> for i in range(100):
   for j in range(100):
      img[i,j]=[0,0,0]

輸出

imshow

可以使用 split() 函式將影像通道拆分為各個平面。可以使用 merge() 函式合併通道。

split() 函式返回一個多通道陣列。

我們可以使用以下命令拆分影像通道:

>>> img = cv.imread("OpenCV_Logo.png", 1)
>>> b,g,r = cv.split(img)

現在,您可以對每個平面進行操作。

假設我們將藍色通道中的所有畫素設定為 0,則程式碼如下:

>>> img[:, :, 0]=0
>>> cv.imshow("image", img)

生成的影像將顯示如下:

Individual Planes
廣告
© . All rights reserved.