OpenCV 建立影象

Ammar Ali 2022年5月17日
OpenCV 建立影象

本教程將討論使用 NumPyzeros() 函式建立影象並使用 OpenCV 的 imshow() 函式顯示它。

在 Python 中使用 NumPyzeros() 函式建立影象

影象由放置在矩陣中的畫素組成。每個畫素都包含一個顏色值作為 BGR 三元組。

例如,一張 512x512 影象由 512 列和 512 行組成,影象中存在的畫素總數等於行數乘以列數。

BGR 三元組值在 8 點陣圖像中包含範圍從 0 到 255 的三個值。

第一個值對應於藍色的強度。例如,值 (255,0,0) 的畫素將具有深藍色,而值 (50,0,0) 將具有淺藍色。

第二個和第三個 BRG 三元組值對應於綠色和紅色。我們可以設定這三種顏色的值來製作任何顏色。

在 8 點陣圖像中,單個畫素可以具有 256 乘以 256 乘以 255 不同的顏色。我們可以使用 NumPyzeros() 函式在 Python 中建立黑色影象。

zeros() 函式根據矩陣的行數和列數建立一個僅包含零的矩陣。例如,讓我們在 Python 中建立一個黑色影象。

請參閱下面的程式碼。

import cv2
import numpy as np

height = 512
width = 512
img = np.zeros((height,width,3), np.uint8)

cv2.imshow('Binary',img)
cv2.waitKey(0)

輸出:

使用 numpy 的黑色影象

上圖中的每個畫素都有 BGR 三元組值 (0,0,0),即黑色。我們還可以通過將每個畫素值設定為 BGR 三元組值來更改影象的顏色。

例如,讓我們將上圖的顏色更改為藍色。請參閱下面的程式碼。

import cv2
import numpy as np

height = 512
width = 512
img = np.zeros((height,width,3), np.uint8)
img[:,:] = (255,0,0)

cv2.imshow('image',img)
cv2.waitKey(0)

輸出:

使用 numpy 的藍色影象

上述程式碼中的冒號符號用於所有行和列。第一個冒號對應於列,第二個冒號對應於 img 矩陣中的行。

冒號還將範圍如 0 到 100 定義為 0:100。我們可以設定影象中某些畫素的顏色,而不是設定所有畫素的顏色。

例如,讓我們為上圖的不同部分設定不同的顏色。請參閱下面的程式碼。

import cv2
import numpy as np

height = 512
width = 512
img = np.zeros((height,width,3), np.uint8)
img[:,:] = (255,0,0)
img[0:100,0:100] = (255,255,0)
img[:,width//2:width] = (0,0,255)

cv2.imshow('image',img)
cv2.waitKey(0)

輸出:

使用 numpy 的多色影象

在上面的程式碼中,我們使用影象寬度將前 100 列和前 100 行的顏色設定為青色,將影象右側的顏色設定為紅色。

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相關文章 - OpenCV Image