- 深度學(xué)習(xí)與計(jì)算機(jī)視覺:項(xiàng)目式教材
- 彭飛 張強(qiáng)編著
- 1293字
- 2024-12-11 17:11:51
1.4 任務(wù)3:幾何圖形繪制
1.4.1 任務(wù)描述
基于龍芯平臺(tái),利用OpenCV的相關(guān)函數(shù)實(shí)現(xiàn)常用的幾何圖形繪制。
1.4.2 技術(shù)準(zhǔn)備
在圖像處理中,我們經(jīng)常需要將某個(gè)感興趣的區(qū)域用圖形標(biāo)注出來,以便在開發(fā)時(shí)觀察和調(diào)試,尤其是在進(jìn)行物體檢測(cè)與物體跟蹤時(shí),繪圖是必不可少的操作。OpenCV提供了一系列的幾何圖形繪制函數(shù),可以實(shí)現(xiàn)在圖像中繪制線段、矩形、圓形、橢圓形、多邊形、文本等功能。
1.line()函數(shù)
line()函數(shù)用于繪制線段,其基本格式如下。
cv2.line(img, start_point, end_point, color, thickness=0)
參數(shù)如下。
● img:指定需要繪制的圖像。
● start_point:指定線段的起始坐標(biāo),必須是元組類型。
● end_point:指定線段的結(jié)束坐標(biāo),必須是元組類型。
● color:指定線條的顏色,必須是元組類型,通常使用BGR顏色值表示顏色,如(255, 0, 0)表示紅色。
● thickness:指定線條的寬度,默認(rèn)值為1,若設(shè)置為?1,表示繪制填充圖形。
2.rectangle()函數(shù)
rectangle()函數(shù)用于繪制矩形,其基本格式如下。
cv2.rectangle(img, point1, point2, color, thickness=0)
參數(shù)如下。
● img:指定需要繪制的圖像。
● point1:指定矩形左上角頂點(diǎn)的坐標(biāo),必須是元組類型。
● point2:指定矩形右下角頂點(diǎn)的坐標(biāo),必須是元組類型。
● color:指定線條的顏色,必須是元組類型。
● thickness:指定線條的寬度。
注意,該函數(shù)每調(diào)用一次,就會(huì)產(chǎn)生一個(gè)矩形,多次調(diào)用就會(huì)產(chǎn)生多個(gè)矩形。
3.circle()函數(shù)
circle()函數(shù)用于繪制圓形,其基本格式如下。
cv2.circle(img, center, R, color, thickness=0)
參數(shù)如下。
● img:指定需要繪制的圖像。
● center:指定圓心坐標(biāo),必須是元組類型。
● R:指定圓形的半徑。
● color:指定線條的顏色,必須是元組類型。
● thickness:指定線條的寬度。
4.ellipse()函數(shù)
ellipse()函數(shù)用于繪制橢圓形,其基本格式如下。
cv2.ellipse(img, center, (a, b), direction, angle_start, angle_end, color, thickness)
參數(shù)如下。
● img:指定需要繪制的圖像。
● center:指定橢圓形的中心坐標(biāo)。
● (a,b):指定橢圓形的長軸和短軸。
● direction:指定順時(shí)針方向的旋轉(zhuǎn)角度。
● angle_start:指定繪制橢圓形開始的角度。
● angle_end:指定繪制橢圓形結(jié)束的角度。
● color:指定線條的顏色。
● thickness:指定線條的寬度。
5.polylines()函數(shù)
polylines()函數(shù)用于繪制多邊形,其基本格式如下。
cv2.polylines(img, pts, isClosed, color, thickness=0)
參數(shù)如下。
● img:指定需要繪制的圖像。
● pts:指定點(diǎn)的坐標(biāo)集合,一般以列表的形式填入。
● isClosed:指定多邊形是否閉合。若它為False,表示不閉合;若為True,表示閉合。
● color:指定線條的顏色。
● thickness:指定線條的寬度。
6.putText()函數(shù)
putText()函數(shù)用于繪制文本,其基本格式如下。
cv2.putText(img, text, org, fontFace, fontScale, color, thickness, lineType)
參數(shù)如下。
● img:指定需要添加文字的背景圖。
● text:指定需要添加的文字。
● org:指定添加文字的位置。
● fontFace:指定字體。
● fontScale:指定字號(hào)大小。
● color:指定文字的顏色。
● thickness:指定線條的寬度。
● lineType:指定線條的種類。
1.4.3 任務(wù)實(shí)施
利用OpenCV的相關(guān)函數(shù)進(jìn)行幾何圖形繪制的代碼如下。
import cv2 import numpy as np # 創(chuàng)建一張圖片 img = np.ones((500, 500, 3), np.uint8) # 繪制線段 cv2.line(img, (60, 240), (220, 240), BGR(0, 0, 255):紅色, 3, cv2.LINE_AA) cv2.line(img, (140, 160), (140, 320), BGR(0, 0, 255):紅色, 3, cv2.LINE_AA) # 繪制矩形 cv2.rectangle(img, (100, 200), (180, 280), (0, 255, 255), 3, cv2.LINE_AA) cv2.rectangle(img, (80, 180), (200, 300), (0, 255, 255), 3, cv2.LINE_AA) cv2.rectangle(img, (60, 160), (220, 320), (0, 255, 255), 3, cv2.LINE_AA) # 繪制圓形 cv2.circle(img, (140, 240), 80, (255, 255, 0), 2, cv2.LINE_AA) cv2.circle(img, (140, 240), 60, (255, 255, 0), 2, cv2.LINE_AA) cv2.circle(img, (140, 240), 40, (255, 255, 0), 2, cv2.LINE_AA) # 繪制橢圓形 cv2.ellipse(img, (140, 80), (100, 50), 0, 0, 360, (0, 255, 0), 2, cv2.LINE_AA) cv2.ellipse(img, (140, 80), (90, 40), 0, 0, 90, (255, 0, 0), 2, cv2.LINE_AA) cv2.ellipse(img, (140, 80), (90, 40), 0, 270, 360, (0, 255, 0), 2, cv2.LINE_AA) cv2.ellipse(img, (140, 80), (80, 30), 0, 0, 90, (0, 255, 0), 2, cv2.LINE_AA) cv2.ellipse(img, (140, 80), (80, 30), 0, 270, 360, (255, 255, 0), 2, cv2.LINE_AA) cv2.ellipse(img, (140, 80), (70, 20), 0, 90, 270, (255, 255, 0), 2, cv2.LINE_AA) # 繪制多邊形 pts = np.array([[400, 100], [300, 140], [450, 250], [350, 250]], np.int32) cv2.polylines(img, [pts], True, (0, 0, 255), 1, cv2.LINE_AA) # 繪制文字 cv2.putText(img, 'loongson Platform: OpenCV', (0, 450), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,0),4) cv2.imshow("Image ", img) cv2.waitKey(0)
幾何圖形繪制結(jié)果如圖1-5所示。

▲圖1-5 幾何圖形繪制結(jié)果
- 劫持
- 物聯(lián)網(wǎng)+智能家居:移動(dòng)互聯(lián)技術(shù)應(yīng)用
- 智能物聯(lián)技術(shù)
- 人工智能:現(xiàn)代方法(第4版)
- ChatGPT速學(xué)通:文案寫作+PPT制作+數(shù)據(jù)分析+知識(shí)學(xué)習(xí)與變現(xiàn)
- AI自媒體寫作超簡單
- 創(chuàng)造性思維:人工智能之父馬文·明斯基論教育
- IBM商業(yè)價(jià)值報(bào)告:認(rèn)知計(jì)算與人工智能
- 人工智能導(dǎo)論
- AI助理:用ChatGPT輕松搞定工作
- 基于NI Multisim 11的PLD/PIC/PLC的仿真設(shè)計(jì)
- MLOps工程實(shí)踐:工具、技術(shù)與企業(yè)級(jí)應(yīng)用
- Manus極簡入門:從0到1快速打造你的AI智能體
- 奇點(diǎn)臨近
- 人工智能關(guān)我什么事