環境準備

首先,確保安裝了opencv-pythonnumpy庫。如果未安裝,可通過以下命令安裝:

pip install opencv-python numpy

導入庫與創建畫布

在代碼開頭導入所需庫,並創建一個空白的黑色圖像作爲畫布(500x500像素,3通道彩色圖像):

import cv2
import numpy as np

# 創建500x500的黑色圖像(高度, 寬度, 通道數)
img = np.zeros((500, 500, 3), np.uint8)

1. 繪製直線

使用cv2.line()函數,參數包括圖像、起點、終點、顏色(BGR格式)、線寬和線條類型(抗鋸齒更平滑):

# 繪製從(50,50)到(450,450)的紅色抗鋸齒直線
cv2.line(img, (50, 50), (450, 450), (0, 0, 255), 2, cv2.LINE_AA)

2. 繪製矩形

使用cv2.rectangle()函數,參數爲左上角座標、右下角座標、顏色和線寬(-1表示填充):

# 1. 綠色輪廓矩形(線寬3)
cv2.rectangle(img, (100, 100), (400, 400), (0, 255, 0), 3)

# 2. 藍色填充矩形(線寬-1)
cv2.rectangle(img, (50, 50), (200, 200), (255, 0, 0), -1)

3. 繪製圓形

使用cv2.circle()函數,參數爲圓心、半徑、顏色和線寬:

# 1. 黃色輪廓圓(線寬5)
cv2.circle(img, (250, 250), 150, (0, 255, 255), 5)

# 2. 紅色填充圓(線寬-1)
cv2.circle(img, (250, 250), 80, (0, 0, 255), -1)

4. 繪製多邊形

使用cv2.polylines()(輪廓)或cv2.fillPoly()(填充),需指定頂點列表:

# 1. 繪製青色三角形輪廓
triangle = np.array([[300, 150], [400, 300], [200, 300]], np.int32)
cv2.polylines(img, [triangle], True, (255, 255, 0), 3)

# 2. 填充淺紅色四邊形
quad = np.array([[350, 100], [450, 200], [350, 300], [250, 200]], np.int32)
cv2.fillPoly(img, [quad], (255, 100, 100))

5. 顯示圖像

繪製完成後,使用cv2.imshow()顯示圖像,並通過cv2.waitKey()等待按鍵關閉窗口:

cv2.imshow("Basic Shapes", img)
cv2.waitKey(0)  # 等待任意鍵按下
cv2.destroyAllWindows()  # 關閉所有窗口

關鍵說明

  1. 顏色通道:OpenCV使用BGR格式,例如紅色爲(0, 0, 255),而非RGB的(255, 0, 0)
  2. 填充與輪廓:線寬爲-1時圖形會被填充,正數爲輪廓線。
  3. 座標系統:圖像左上角爲原點(0, 0),向右爲x軸,向下爲y軸。

通過以上步驟,你已掌握OpenCV繪製基本幾何圖形的核心方法,可進一步擴展到更復雜的圖形或圖像處理任務。

小夜