環境準備¶
首先,確保安裝了opencv-python和numpy庫。如果未安裝,可通過以下命令安裝:
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() # 關閉所有窗口
關鍵說明¶
- 顏色通道:OpenCV使用BGR格式,例如紅色爲
(0, 0, 255),而非RGB的(255, 0, 0)。 - 填充與輪廓:線寬爲
-1時圖形會被填充,正數爲輪廓線。 - 座標系統:圖像左上角爲原點
(0, 0),向右爲x軸,向下爲y軸。
通過以上步驟,你已掌握OpenCV繪製基本幾何圖形的核心方法,可進一步擴展到更復雜的圖形或圖像處理任務。