最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python OpenCV繪制各類幾何圖形詳解

 更新時(shí)間:2022年01月27日 14:48:26   作者:Eastmount  
這篇文章將詳細(xì)講解如何使用OpenCV繪制各類幾何圖形,包括cv2.line()、v2.circle()、cv2.rectangle()、cv2.ellipse()、cv2.polylines()、cv2.putText()函數(shù)。需要的可以參考一下

一.繪制直線

在OpenCV中,繪制直線需要獲取直線的起點(diǎn)和終點(diǎn)坐標(biāo),調(diào)用cv2.line()函數(shù)實(shí)現(xiàn)該功能。該函數(shù)原型如下所示:

img = line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

– img表示需要繪制的那幅圖像

– pt1表示線段第一個(gè)點(diǎn)的坐標(biāo)

– pt2表示線段第二個(gè)點(diǎn)的坐標(biāo)

– color表示線條顏色,需要傳入一個(gè)RGB元組,如(255,0,0)代表藍(lán)色

– thickness表示線條粗細(xì)

– lineType表示線條的類型

– shift表示點(diǎn)坐標(biāo)中的小數(shù)位數(shù)

下面的代碼是繪制一條直線,通過(guò)np.zeros()創(chuàng)建一幅黑色圖像,接著調(diào)用cv2.line()繪制直線,參數(shù)包括起始坐標(biāo)和顏色、粗細(xì)。

# -*- coding:utf-8 -*-
# By:Eastmount
import cv2
import numpy as np

#創(chuàng)建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪制直線
cv2.line(img, (0,0), (255,255), (55,255,155), 5)

#顯示圖像
cv2.imshow("line", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結(jié)果如圖3-1所示,從坐標(biāo)(0,0)到(255,255)繪制一條直線,其直線顏色為(55,255,155),粗細(xì)為5。

二.繪制矩形

在OpenCV中,繪制矩形通過(guò)cv2.rectangle()函數(shù)實(shí)現(xiàn),該函數(shù)原型如下所示:

img = rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

– img表示需要繪制的那幅圖像

– pt1表示矩形的左上角位置坐標(biāo)

– pt2表示矩形的右下角位置坐標(biāo)

– color表示矩形的顏色

– thickness表示邊框的粗細(xì)

– lineType表示線條的類型

– shift表示點(diǎn)坐標(biāo)中的小數(shù)位數(shù)

下面的代碼是繪制一個(gè)矩形,通過(guò)np.zeros()創(chuàng)建一幅黑色圖像,接著調(diào)用cv2.rectangle()繪制矩形。

# -*- coding:utf-8 -*-
# By:Eastmount
import cv2
import numpy as np

#創(chuàng)建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪制矩形
cv2.rectangle(img, (20,20), (150,250), (255,0,0), 2)

#顯示圖像
cv2.imshow("rectangle", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結(jié)果如圖3-2所示,從左上角坐標(biāo)為(20,20),右下角坐標(biāo)為(150,250),繪制的矩形顏色為藍(lán)色(255,0,0),粗細(xì)為2。

三.繪制圓形

在OpenCV中,繪制矩形通過(guò)cv2.rectangle()函數(shù)實(shí)現(xiàn),該函數(shù)原型如下所示:

img = circle(img, center, radius, color[, thickness[, lineType[, shift]]])

– img表示需要繪制圓的圖像

– center表示圓心坐標(biāo)

– radius表示圓的半徑

– color表示圓的顏色

– thickness如果為正值,表示圓輪廓的厚度;負(fù)厚度表示要繪制一個(gè)填充圓

– lineType表示圓的邊界類型

– shift表示中心坐標(biāo)和半徑值中的小數(shù)位數(shù)

下面代碼是繪制一個(gè)圓形。

# -*- coding:utf-8 -*-
# By:Eastmount
import cv2
import numpy as np

#創(chuàng)建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪制圓形
cv2.circle(img, (100,100), 50, (255,255,0), 4)

#顯示圖像
cv2.imshow("circle", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結(jié)果如圖3-3所示,它在圓形為(100,100)的位置,繪制了一個(gè)半徑為50,顏色為(255,255,0)、粗細(xì)為4的圓。

注意,如果將粗細(xì)設(shè)置為“-1”,則繪制的圓為實(shí)心,如圖3-4所示。

cv2.circle(img, (100,100), 50, (255,255,0), -1)

四.繪制橢圓

在OpenCV中,繪制橢圓比較復(fù)雜,要多輸入幾個(gè)參數(shù),如中心點(diǎn)的位置坐標(biāo),長(zhǎng)軸和短軸的長(zhǎng)度,橢圓沿逆時(shí)針?lè)较蛐D(zhuǎn)的角度等。cv2.ellipse()函數(shù)原型如下所示:

img = ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])

– img表示需要繪制橢圓的圖像

– center表示橢圓圓心坐標(biāo)

– axes表示軸的長(zhǎng)度(短半徑和長(zhǎng)半徑)

– angle表示偏轉(zhuǎn)的角度(逆時(shí)針旋轉(zhuǎn))

– startAngle表示圓弧起始角的角度(逆時(shí)針旋轉(zhuǎn))

– endAngle表示圓弧終結(jié)角的角度(逆時(shí)針旋轉(zhuǎn))

– color表示線條的顏色

– thickness如果為正值,表示橢圓輪廓的厚度;負(fù)值表示要繪制一個(gè)填充橢圓

– lineType表示圓的邊界類型

– shift表示中心坐標(biāo)和軸值中的小數(shù)位數(shù)

下面是繪制一個(gè)橢圓的代碼。

# -*- coding:utf-8 -*-
# By:Eastmount
import cv2
import numpy as np

#創(chuàng)建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪制橢圓
#橢圓中心(120,100) 長(zhǎng)軸和短軸為(100,50)
#偏轉(zhuǎn)角度為20
#圓弧起始角的角度0 圓弧終結(jié)角的角度360
#顏色(255,0,255) 線條粗細(xì)2
cv2.ellipse(img, (120, 100), (100, 50), 20, 0, 360, (255, 0, 255), 2)

#顯示圖像
cv2.imshow("ellipse", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結(jié)果如圖3-5所示,其橢圓中心為(120,100),長(zhǎng)軸為100,短軸為50,偏轉(zhuǎn)角度為20,圓弧起始角的角度為0,圓弧終結(jié)角的角度為360,表示一個(gè)完整的橢圓。繪制的顏色為(255,0,255),粗細(xì)為2。

五.繪制多邊形

在OpenCV中,調(diào)用cv2.polylines()函數(shù)繪制多邊形,它需要指定每個(gè)頂點(diǎn)的坐標(biāo),通過(guò)這些點(diǎn)構(gòu)建多邊形,其函數(shù)原型如下所示:

img = polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])

– img表示需要繪制的圖像

– center表示多邊形曲線陣列

– isClosed表示繪制的多邊形是否閉合,F(xiàn)alse表示不閉合

– color表示線條的顏色

– thickness表示線條粗細(xì)

– lineType表示邊界類型

– shift表示頂點(diǎn)坐標(biāo)中的小數(shù)位數(shù)

下面是繪制一個(gè)多邊形的代碼。

# -*- coding:utf-8 -*-
# By:Eastmount
import cv2
import numpy as np

#創(chuàng)建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪制多邊形
pts = np.array([[10,80], [120,80], [120,200], [30,250]])
cv2.polylines(img, [pts], True, (255, 255, 255), 5)

#顯示圖像
cv2.imshow("ellipse", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結(jié)果如圖3-6所示,繪制的多邊形為白色的閉合圖形。

下面的代碼是繪制一個(gè)五角星多邊形。

# -*- coding:utf-8 -*-
# By:Eastmount
import cv2
import numpy as np

#創(chuàng)建黑色圖像
img = np.zeros((512,512,3), np.uint8)

#繪制多邊形
pts = np.array([[50, 190], [380, 420], [255, 50], [120, 420], [450, 190]])
cv2.polylines(img, [pts], True, (0, 255, 255), 10)

#顯示圖像
cv2.imshow("ellipse", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結(jié)果如圖3-7所示,它將五個(gè)頂點(diǎn)左邊分別連接起來(lái),構(gòu)成了一個(gè)黃色的五角星。

六.繪制文字

在OpenCV中,調(diào)用cv2.putText()函數(shù)添加對(duì)應(yīng)的文字,其函數(shù)原型如下所示:

img = putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])

– img表示要繪制的圖像

– text表示要繪制的文字

– org表示要繪制的位置,圖像中文本字符串的左下角

– fontFace表示字體類型,具體查看see cv::HersheyFonts

– fontScale表示字體的大小,計(jì)算為比例因子乘以字體特定的基本大小

– color表示字體的顏色

– thickness表示字體的粗細(xì)

– lineType表示邊界類型

– bottomLeftOrigin如果為真,則圖像數(shù)據(jù)原點(diǎn)位于左下角,否則它在左上角

下面是繪制文字的代碼。

# -*- coding:utf-8 -*-
# By:Eastmount
import cv2
import numpy as np

#創(chuàng)建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪制文字
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, 'I love Python!I love Huawei!',
? ? ? ? ? ? (10, 100), font, 0.5, (255, 255, 0), 2)

#顯示圖像
cv2.imshow("polylines", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結(jié)果如圖3-8所示,繪制的文字為“I love Python!I love Huawei!”。

七.總結(jié)

本文詳細(xì)介紹了OpenCV繪制幾何圖形的方法,利用cv2.line()、v2.circle()、cv2.rectangle()、cv2.ellipse()、cv2.polylines()、cv2.putText()函數(shù)實(shí)現(xiàn)。初學(xué)者通過(guò)這篇文章將了解基礎(chǔ)圖形繪制的基礎(chǔ)用法,為后續(xù)應(yīng)用提供幫助。

到此這篇關(guān)于Python OpenCV繪制各類幾何圖形詳解的文章就介紹到這了,更多相關(guān)Python OpenCV繪制圖形內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python用什么編輯器進(jìn)行項(xiàng)目開(kāi)發(fā)

    python用什么編輯器進(jìn)行項(xiàng)目開(kāi)發(fā)

    在本篇文章里小編給大家整理的是一篇關(guān)于python開(kāi)發(fā)用的編輯器詳細(xì)介紹,有需要的朋友們可以參考下哎。
    2020-06-06
  • python和JavaScript通信

    python和JavaScript通信

    這篇文章主要介紹了python和JavaScript通信,js和python是兩種語(yǔ)言,js處理網(wǎng)頁(yè)數(shù)據(jù),python可作為服務(wù)端開(kāi)發(fā),兩者通過(guò)websocket進(jìn)行通信,下文具體操作內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • Python如何寫入Pandas DataFrame到CSV文件

    Python如何寫入Pandas DataFrame到CSV文件

    Pandas是一個(gè)功能強(qiáng)大的Python數(shù)據(jù)分析庫(kù),常用于處理和分析數(shù)據(jù),CSV文件是一種廣泛使用的數(shù)據(jù)交換格式,Pandas通過(guò)to_csv方法支持將DataFrame寫入CSV文件,此方法允許用戶指定分隔符、編碼和選擇性寫入特定列等
    2024-09-09
  • Python實(shí)現(xiàn)bilibili時(shí)間長(zhǎng)度查詢的示例代碼

    Python實(shí)現(xiàn)bilibili時(shí)間長(zhǎng)度查詢的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)bilibili時(shí)間長(zhǎng)度查詢的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Python機(jī)器學(xué)習(xí)入門(一)序章

    Python機(jī)器學(xué)習(xí)入門(一)序章

    這篇文章主要介紹了Python機(jī)器學(xué)習(xí)入門知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 使用python存儲(chǔ)網(wǎng)頁(yè)上的圖片實(shí)例

    使用python存儲(chǔ)網(wǎng)頁(yè)上的圖片實(shí)例

    今天小編就為大家分享一篇使用python存儲(chǔ)網(wǎng)頁(yè)上的圖片實(shí)例,具有很好的參考價(jià)值。希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 利用Python對(duì)哥德巴赫猜想進(jìn)行檢驗(yàn)和推理

    利用Python對(duì)哥德巴赫猜想進(jìn)行檢驗(yàn)和推理

    數(shù)學(xué)是一個(gè)奇妙的東西,對(duì)此,也衍生出了許多的悖論與猜想。這篇文章會(huì)對(duì)哥德巴赫猜想用編程語(yǔ)言進(jìn)行檢驗(yàn)和推理,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-12-12
  • python 解決mysql where in 對(duì)列表(list,,array)問(wèn)題

    python 解決mysql where in 對(duì)列表(list,,array)問(wèn)題

    這篇文章主要介紹了python 解決mysql where in 對(duì)列表(list,,array)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • 對(duì)python程序內(nèi)存泄漏調(diào)試的記錄

    對(duì)python程序內(nèi)存泄漏調(diào)試的記錄

    今天小編就為大家分享一篇對(duì)python程序內(nèi)存泄漏調(diào)試的記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 使用Python腳本zabbix自定義key監(jiān)控oracle連接狀態(tài)

    使用Python腳本zabbix自定義key監(jiān)控oracle連接狀態(tài)

    這篇文章主要介紹了使用Python腳本zabbix自定義key監(jiān)控oracle連接狀態(tài),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

浙江省| 博白县| 麻城市| 梨树县| 湖南省| 四川省| 西昌市| 呼伦贝尔市| 德安县| 辽阳县| 宁晋县| 长顺县| 龙海市| 西平县| 临泽县| 河曲县| 海林市| 东辽县| 吴江市| 临武县| 黄冈市| 彭山县| 平塘县| 沅陵县| 句容市| 乌兰察布市| 贞丰县| 岳普湖县| 台山市| 永寿县| 贵南县| 永福县| 唐河县| 万宁市| 瓦房店市| 交城县| 长顺县| 寻乌县| 仲巴县| 崇义县| 四川省|