一、函數介紹
cv2.rectangle函數是OpenCV中畫矩形的函數,可以用於在圖像上繪製矩形。
cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
該函數的參數解釋如下:
- img:要繪製矩形的圖像。
- pt1:矩形的一個頂點。
- pt2:矩形的另一個頂點。
- color:矩形的顏色。可以是顏色名稱,也可以是RGB或BGR值。
- thickness:矩形的邊界線條粗細。默認值為1。
- lineType:矩形邊界線條的類型。默認值為cv2.LINE_8。
- shift:點坐標中的小數位數。默認值為0。
二、繪製矩形
使用cv2.rectangle函數可以在圖像上繪製矩形。下面我們通過幾個示例來講解如何使用該函數。
1、繪製單色矩形
下面的示例演示如何在圖像上繪製一個紅色的矩形。
import cv2
# 讀取圖像
img = cv2.imread("image.jpg")
# 繪製矩形
pt1 = (100, 100)
pt2 = (200, 200)
color = (0, 0, 255)
thickness = 2
cv2.rectangle(img, pt1, pt2, color, thickness)
# 顯示圖像
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
說明:
- 首先我們使用cv2.imread函數讀取一張圖像。
- 然後使用cv2.rectangle函數繪製一個紅色的矩形,該矩形的左上角坐標為(100,100),右下角坐標為(200,200)。
- 最後使用cv2.imshow函數顯示圖像。
2、繪製帶填充顏色的矩形
下面的示例演示如何在圖像上繪製一個帶填充顏色的矩形。
import cv2
# 讀取圖像
img = cv2.imread("image.jpg")
# 繪製矩形
pt1 = (100, 100)
pt2 = (200, 200)
color = (0, 0, 255)
thickness = -1
cv2.rectangle(img, pt1, pt2, color, thickness)
# 顯示圖像
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
說明:
- 與上一個示例相似,只不過這個矩形是帶填充顏色的。
- 在使用cv2.rectangle函數時,當thickness參數為正數時,表示繪製邊框線條的粗細;當thickness參數為負數時,表示繪製帶填充顏色的矩形。
3、繪製帶不同邊框線條的矩形
下面的示例演示如何在圖像上繪製一個邊框線條為藍色、線條粗細為3的矩形。
import cv2
# 讀取圖像
img = cv2.imread("image.jpg")
# 繪製矩形
pt1 = (100, 100)
pt2 = (200, 200)
color = (255, 0, 0)
thickness = 3
lineType = cv2.LINE_AA
cv2.rectangle(img, pt1, pt2, color, thickness, lineType)
# 顯示圖像
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
說明:
- 在使用cv2.rectangle函數時,可以通過thickness參數來控制邊框線條的粗細,通過lineType參數來控制線條的類型。
- 在本示例中,我們繪製了一個邊框線條為藍色、線條粗細為3的矩形,並將lineType參數設置為cv2.LINE_AA,表示使用抗鋸齒線條繪製。
4、繪製帶圓角的矩形
下面的示例演示如何在圖像上繪製一個帶圓角的矩形。
import cv2
# 讀取圖像
img = cv2.imread("image.jpg")
# 繪製矩形
pt1 = (100, 100)
pt2 = (200, 200)
color = (0, 0, 255)
thickness = 2
lineType = cv2.LINE_AA
cv2.rectangle(img, pt1, pt2, color, thickness, lineType)
radius = 20
cv2.circle(img, (pt1[0]+radius, pt1[1]+radius), radius, color, -1)
cv2.circle(img, (pt1[0]+radius, pt2[1]-radius), radius, color, -1)
cv2.circle(img, (pt2[0]-radius, pt1[1]+radius), radius, color, -1)
cv2.circle(img, (pt2[0]-radius, pt2[1]-radius), radius, color, -1)
# 顯示圖像
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
說明:
- 在使用cv2.rectangle函數時,如果想要繪製帶圓角的矩形,則可以先繪製四個圓來代替矩形的四個拐角。
- 在本示例中,我們繪製了一個帶圓角的矩形。首先繪製了一個邊框線條為紅色、線條粗細為2的矩形。然後通過cv2.circle函數繪製了四個圓,代替了矩形的四個拐角。
三、總結
通過本文的介紹,我們了解了cv2.rectangle函數的基本用法,並學會了如何在圖像上繪製不同類型的矩形。在實際使用中,我們可以根據需要調整函數參數,來實現各種不同的矩形繪製效果。
原創文章,作者:WWSY,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/135672.html