DigiHouse
English

TECH ARTICLE · NCU · 3 MIN READ

Blog / NCU

第 19 課|使用 OpenCV 繪製直線、圓形、橢圓與多邊形

使用 OpenCV 繪製直線、圓形、橢圓與多邊形。本文已重新整理為適合 DigiHouse 閱讀的課程文章,並保留原始 PIXNET 刊載網址。

使用 OpenCV 繪製基本圖形的 Python 程式解析

本文展示了如何使用 OpenCV 繪製基本圖形,如直線、圓形、橢圓和多邊形。

程式碼範例與註解

text
# 匯入必要模組
import cv2
import numpy as np

# 建立 512x512 的白色畫布
canvas = np.zeros((512, 512, 3), dtype=np.uint8)
canvas.fill(255)

# 繪製直線
cv2.line(canvas, (50, 50), (450, 50), (255, 0, 0), 3)

# 繪製圓形
cv2.circle(canvas, (256, 256), 100, (0, 255, 0), -1)

# 繪製橢圓
cv2.ellipse(canvas, (256, 400), (150, 75), 45, 0, 360, (0, 0, 255), 3)

# 繪製多邊形
pts = np.array([[100, 200], [200, 300], [300, 200], [200, 100]], np.int32)
pts = pts.reshape((-1, 1, 2))
cv2.polylines(canvas, [pts], isClosed=True, color=(0, 255, 255), thickness=2)

# 顯示畫布
cv2.imshow("Shapes", canvas)
cv2.waitKey(0)
cv2.destroyAllWindows()

程式解析

• 建立畫布: 使用 np.zeros 建立一個 512x512 的黑色畫布,並用 fill(255) 填滿為白色。

• 繪製直線: cv2.line 繪製一條從座標 (50, 50) 到 (450, 50) 的藍色直線,厚度為 3。

• 繪製圓形: cv2.circle 在畫布上繪製一個綠色的實心圓,中心點為 (256, 256),半徑為 100。

• 繪製橢圓: cv2.ellipse 繪製一個紅色的橢圓,中心點為 (256, 400),軸長為 (150, 75),旋轉角度為 45°。

• 繪製多邊形: cv2.polylines 繪製一個黃色的封閉多邊形,頂點由陣列 [[100, 200], [200, 300], [300, 200], [200, 100]] 定義。

• 顯示畫布: 使用 cv2.imshow 顯示繪製的圖形,並等待用戶按下任意鍵後關閉視窗。

結論

此程式展示了 OpenCV 的基本繪圖功能,讓用戶可以在畫布上繪製多種圖形。這些方法為創建自定義圖像或圖像處理提供了基礎,用戶可以進一步嘗試更多複雜的繪圖組合。

劉老師的跨域創想工坊

本文亦刊載於 PIXNET

https://liusming.pixnet.net/blog/posts/14222886411