網(wǎng)站 設(shè)計 分辨率網(wǎng)頁代碼模板
OpenCV 是一個功能強(qiáng)大的計算機(jī)視覺庫,它不僅提供了豐富的圖像處理功能,還支持圖像的繪制。繪制簡單的幾何圖形(如線條和矩形)是 OpenCV 中常見的操作。在本篇文章中,我們將介紹如何使用 OpenCV 在圖像上繪制線條和矩形。
繪制線條
在 OpenCV 中,可以使用 cv2.line()
函數(shù)來繪制直線。該函數(shù)的語法如下:
cv2.line(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ì),默認(rèn)為 1。
示例代碼:繪制一條紅色的線
import cv2
import numpy as np# 創(chuàng)建一個黑色的圖像
image = np.zeros((500, 500, 3), dtype=np.uint8)# 定義線條的起點和終點
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ù)來繪制矩形。該函數(shù)的語法如下:
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
。
示例代碼:繪制一個綠色的矩形
import cv2
import numpy as np# 創(chuàng)建一個白色的圖像
image = np.ones((500, 500, 3), dtype=np.uint8) * 255# 定義矩形的起點和終點
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()
輸出圖像
填充矩形
如果要繪制一個填充的矩形,只需將 thickness
設(shè)置為 -1
,OpenCV 會自動將矩形內(nèi)部填充為指定的顏色。
示例代碼:繪制一個填充的藍(lán)色矩形
import cv2
import numpy as np# 創(chuàng)建一個白色的圖像
image = np.ones((500, 500, 3), dtype=np.uint8) * 255# 定義矩形的起點和終點
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)建一個黑色的圖像,或者使用numpy.ones()
創(chuàng)建一個白色的圖像。dtype=np.uint8
表示圖像數(shù)據(jù)類型為 8 位無符號整數(shù),這在 OpenCV 中通常用于表示圖像像素值(范圍 0-255)。 - 繪制圖形:通過
cv2.line()
和cv2.rectangle()
函數(shù)來繪制線條和矩形。我們定義了起始點和結(jié)束點,選擇了顏色并指定了線條粗細(xì)。 - 顯示圖像:
cv2.imshow()
函數(shù)用于顯示圖像,cv2.waitKey(0)
等待用戶按下任意鍵后關(guān)閉圖像窗口,cv2.destroyAllWindows()
關(guān)閉所有打開的窗口。
總結(jié)
通過 OpenCV 繪制線條和矩形是一個非常簡單的操作,可以用來標(biāo)記圖像中的區(qū)域、進(jìn)行圖形處理或為圖像添加一些基本的標(biāo)記。無論是使用 cv2.line()
還是 cv2.rectangle()
,你都可以輕松自定義圖形的顏色、位置和大小,這對于各種圖像處理應(yīng)用非常有用。