網(wǎng)站 設(shè)計(jì) 分辨率萬(wàn)網(wǎng)域名注冊(cè)信息查詢
OpenCV 是一個(gè)功能強(qiáng)大的計(jì)算機(jī)視覺(jué)庫(kù),它不僅提供了豐富的圖像處理功能,還支持圖像的繪制。繪制簡(jiǎn)單的幾何圖形(如線條和矩形)是 OpenCV 中常見(jiàn)的操作。在本篇文章中,我們將介紹如何使用 OpenCV 在圖像上繪制線條和矩形。
繪制線條
在 OpenCV 中,可以使用 cv2.line()
函數(shù)來(lái)繪制直線。該函數(shù)的語(yǔ)法如下:
cv2.line(image, start_point, end_point, color, thickness)
image
:待繪制的圖像。start_point
:起點(diǎn)坐標(biāo)(x, y)。end_point
:終點(diǎn)坐標(biāo)(x, y)。color
:線條顏色,格式為 (B, G, R)。thickness
:線條的粗細(xì),默認(rèn)為 1。
示例代碼:繪制一條紅色的線
import cv2
import numpy as np# 創(chuàng)建一個(gè)黑色的圖像
image = np.zeros((500, 500, 3), dtype=np.uint8)# 定義線條的起點(diǎn)和終點(diǎn)
start_point = (50, 50)
end_point = (450, 450)# 定義線條顏色(紅色)
color = (0, 0, 255) # BGR格式# 繪制線條
cv2.line(image, start_point, end_point, color, 5)# 顯示圖像
cv2.imshow("Line", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
輸出圖像
繪制矩形
OpenCV 提供了 cv2.rectangle()
函數(shù)來(lái)繪制矩形。該函數(shù)的語(yǔ)法如下:
cv2.rectangle(image, start_point, end_point, color, thickness)
image
:待繪制的圖像。start_point
:矩形左上角的坐標(biāo) (x, y)。end_point
:矩形右下角的坐標(biāo) (x, y)。color
:矩形顏色,格式為 (B, G, R)。thickness
:矩形邊框的粗細(xì)。如果填充矩形,則設(shè)置為-1
。
示例代碼:繪制一個(gè)綠色的矩形
import cv2
import numpy as np# 創(chuàng)建一個(gè)白色的圖像
image = np.ones((500, 500, 3), dtype=np.uint8) * 255# 定義矩形的起點(diǎn)和終點(diǎn)
start_point = (100, 100)
end_point = (400, 400)# 定義矩形顏色(綠色)
color = (0, 255, 0) # BGR格式# 繪制矩形
cv2.rectangle(image, start_point, end_point, color, 5)# 顯示圖像
cv2.imshow("Rectangle", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
輸出圖像
填充矩形
如果要繪制一個(gè)填充的矩形,只需將 thickness
設(shè)置為 -1
,OpenCV 會(huì)自動(dòng)將矩形內(nèi)部填充為指定的顏色。
示例代碼:繪制一個(gè)填充的藍(lán)色矩形
import cv2
import numpy as np# 創(chuàng)建一個(gè)白色的圖像
image = np.ones((500, 500, 3), dtype=np.uint8) * 255# 定義矩形的起點(diǎn)和終點(diǎn)
start_point = (100, 100)
end_point = (400, 400)# 定義矩形顏色(藍(lán)色)
color = (255, 0, 0) # BGR格式# 繪制填充矩形
cv2.rectangle(image, start_point, end_point, color, -1)# 顯示圖像
cv2.imshow("Filled Rectangle", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
輸出圖像
代碼解釋
- 創(chuàng)建圖像:我們使用
numpy.zeros()
創(chuàng)建一個(gè)黑色的圖像,或者使用numpy.ones()
創(chuàng)建一個(gè)白色的圖像。dtype=np.uint8
表示圖像數(shù)據(jù)類型為 8 位無(wú)符號(hào)整數(shù),這在 OpenCV 中通常用于表示圖像像素值(范圍 0-255)。 - 繪制圖形:通過(guò)
cv2.line()
和cv2.rectangle()
函數(shù)來(lái)繪制線條和矩形。我們定義了起始點(diǎn)和結(jié)束點(diǎn),選擇了顏色并指定了線條粗細(xì)。 - 顯示圖像:
cv2.imshow()
函數(shù)用于顯示圖像,cv2.waitKey(0)
等待用戶按下任意鍵后關(guān)閉圖像窗口,cv2.destroyAllWindows()
關(guān)閉所有打開(kāi)的窗口。
總結(jié)
通過(guò) OpenCV 繪制線條和矩形是一個(gè)非常簡(jiǎn)單的操作,可以用來(lái)標(biāo)記圖像中的區(qū)域、進(jìn)行圖形處理或?yàn)閳D像添加一些基本的標(biāo)記。無(wú)論是使用 cv2.line()
還是 cv2.rectangle()
,你都可以輕松自定義圖形的顏色、位置和大小,這對(duì)于各種圖像處理應(yīng)用非常有用。