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

Python OpenCV學(xué)習(xí)之圖形繪制總結(jié)

 更新時(shí)間:2022年01月06日 08:51:14   作者:一個(gè)熱愛學(xué)習(xí)的深度渣渣  
在圖像的任務(wù)中,不管是圖像檢測還是圖像識別,我們都需要通過繪制圖形和繪制文字對處理的結(jié)果進(jìn)行說明,本篇就詳細(xì)介紹下OpenCV中的圖形的繪制,感興趣的可以了解一下

背景

使用OpenCV進(jìn)行圖形繪制是一種必備的技能,在圖像的任務(wù)中,不管是圖像檢測還是圖像識別,我們都需要通過繪制圖形和繪制文字對處理的結(jié)果進(jìn)行說明,本篇就詳細(xì)介紹下圖形的繪制;

一、畫線

line(圖像,起始點(diǎn),終點(diǎn),顏色,線寬,線形):一般只需要前面四個(gè)參數(shù)即可;

代碼案例:

cv2.line(img, (20, 100), (20, 500), (0,0,255))

畫出了一條Y方向上的紅色線段;

二、畫矩形

這個(gè)相對來說是應(yīng)用最多的一種方法了,往往在檢測項(xiàng)目中返回目標(biāo)的結(jié)果就是(x,y,w,h)或者(x1,y1,x2,y2)這兩種形式,當(dāng)然我們這里繪制需要的是第二種形式,而通過左上角點(diǎn)計(jì)算右下角也是很簡單的;

cv2.rectangle(img, (x1,y1), (x2,y2), (0,0,255), 3)    # 后面兩個(gè)參數(shù)為顏色和線長

簡單展示一下我用DeepFashion數(shù)據(jù)畫出矩形框的效果:

三、畫圓

畫圓在應(yīng)用的其實(shí)并不多,更多的是畫點(diǎn)的操作,例如關(guān)鍵點(diǎn)的任務(wù),需要將關(guān)鍵點(diǎn)在目標(biāo)圖像上顯示出來;而實(shí)際上點(diǎn)就是一個(gè)實(shí)心圓,這里就介紹畫圓和畫點(diǎn)的兩種形式吧。

# 函數(shù)
cv2.circle(img, (x,y), 半徑長度, (0,0,255), -1)        // 畫一個(gè)實(shí)心圓(點(diǎn)),最后參數(shù)設(shè)置為負(fù)數(shù)
cv2.circle(img, (x,y), 半徑長度, (0,0,255), 4)        // 畫一個(gè)空心圓

下面還是展示我畫出關(guān)鍵點(diǎn)的一個(gè)效果:

四、畫多邊形

繪制多邊形在實(shí)際應(yīng)用中也很常見,例如分割以及OCR的任務(wù),往往需要用多個(gè)點(diǎn)描述出目標(biāo)的輪廓。

函數(shù)原型如下:

polylines(img,點(diǎn)集,是否閉環(huán),顏色…),注意這里的點(diǎn)集必須是32位的

案例代碼:

pot = np.array([(100, 100), (200, 200), (300, 400)], np.int32)
cv2.polylines(img, [pot], True, (0, 0, 255))
# 如果輸出填充的多邊形,用以下api
cv2.fillPoly(img, [pot], (0, 0, 255))

五、畫文本

繪制文本在實(shí)際項(xiàng)目中,往往用來標(biāo)記類別,對于一些結(jié)果輸出,可以通過文本的方式繪制到圖像上,便于觀察結(jié)果和驗(yàn)證;

函數(shù)原型:

putText(img,字符串,起始點(diǎn),字體,字號…)

案例代碼:

cv2.putText(img, "Hello World", (100, 100), 字體, 3, (0,0,255))

六、鼠標(biāo)繪制

實(shí)現(xiàn)功能:

可通過鼠標(biāo)進(jìn)行基本圖形的繪制:按下l畫線,按下r畫矩形,按下c畫圓;

import cv2
import numpy as np

star = (0, 0)
select = 0
img = np.zeros((480, 640, 3), np.uint8)

// 定義鼠標(biāo)回調(diào)函數(shù)
def mouse_callback(event, x, y, flags, userdata):
    global star,select
    if (event & cv2.EVENT_LBUTTONDOWN == cv2.EVENT_LBUTTONDOWN):
        star = (x, y)
    elif (event & cv2.EVENT_LBUTTONUP == cv2.EVENT_LBUTTONUP):
        if select == 0:
            cv2.line(img, star, (x, y), (0, 0, 255))
        elif select == 1:
            cv2.rectangle(img, star, (x, y), (0, 0, 255))
        elif select == 2:
            a = (x - star[0])
            b = (y - star[1])
            r = int((a**2+b**2)**0.5)
            cv2.circle(img, star, r, (0, 0, 255))
        else:
            print('no shape')
            
cv2.namedWindow('drawshape', cv2.WINDOW_NORMAL)
cv2.setMouseCallback('drawshape', mouse_callback, "111")
while True:
    cv2.imshow('drawshape', img)
    key=cv2.waitKey(1) & 0xFF
    if key == ord('q'):
        break
    elif key == ord('l'):
        select = 0
    elif key == ord('r'):
        select = 1
    elif key == ord('c'):
        select = 2

下圖是我自己隨意畫的結(jié)果,大家可以創(chuàng)造出更有趣的圖畫;

總結(jié)

常用的圖形繪制就是上面的幾種,其中中文文本還存在問題(需要引入字體樣式文件),在后續(xù)會進(jìn)行補(bǔ)充;之后將學(xué)習(xí)圖形學(xué)的一些進(jìn)階知識,也是為后續(xù)實(shí)戰(zhàn)做準(zhǔn)備;

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

相關(guān)文章

  • Python包管理工具pip的15 個(gè)使用小技巧

    Python包管理工具pip的15 個(gè)使用小技巧

    python的大多數(shù)擴(kuò)展包,都可以使用pip來自動安裝。所以pip還是有很多小技巧的。這篇文章主要給大家介紹了關(guān)于Python包管理工具pip的15 個(gè)使用小技巧,需要的朋友可以參考下
    2021-05-05
  • Python之is與==的區(qū)別詳解

    Python之is與==的區(qū)別詳解

    這篇文章主要介紹了Python之is與==的區(qū)別詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 深入理解python try異常處理機(jī)制

    深入理解python try異常處理機(jī)制

    下面小編就為大家?guī)硪黄钊肜斫鈖ython try異常處理機(jī)制。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • python神經(jīng)網(wǎng)絡(luò)Batch?Normalization底層原理詳解

    python神經(jīng)網(wǎng)絡(luò)Batch?Normalization底層原理詳解

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)Batch?Normalization底層原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python?使用pip在windows命令行中安裝HDF?reader包的操作方法

    Python?使用pip在windows命令行中安裝HDF?reader包的操作方法

    HDF reader包是一個(gè)常用來將.mat類型數(shù)據(jù)導(dǎo)入到python在這里插入代碼片中使用的包,非常好用,今天介紹一下,如何在命令行中安裝這個(gè)包,需要的朋友可以參考下
    2022-12-12
  • Python數(shù)據(jù)結(jié)構(gòu)與算法中的棧詳解(3)

    Python數(shù)據(jù)結(jié)構(gòu)與算法中的棧詳解(3)

    這篇文章主要為大家詳細(xì)介紹了Python中的棧,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Python FTP文件定時(shí)自動下載實(shí)現(xiàn)過程解析

    Python FTP文件定時(shí)自動下載實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Python FTP文件定時(shí)自動下載實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python函數(shù)不定長參數(shù)使用方法解析

    python函數(shù)不定長參數(shù)使用方法解析

    這篇文章主要介紹了python函數(shù)不定長參數(shù)使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python3 Tkinter選擇路徑功能的實(shí)現(xiàn)方法

    Python3 Tkinter選擇路徑功能的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇Python3 Tkinter選擇路徑功能的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python矩陣的轉(zhuǎn)置和逆轉(zhuǎn)實(shí)例

    python矩陣的轉(zhuǎn)置和逆轉(zhuǎn)實(shí)例

    今天小編就為大家分享一篇python矩陣的轉(zhuǎn)置和逆轉(zhuǎn)實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評論

南江县| 临朐县| 股票| 临安市| 汝州市| 江口县| 固阳县| 泰来县| 牙克石市| 辰溪县| 许昌县| 都江堰市| 察哈| 宁远县| 封开县| 纳雍县| 北碚区| 莱西市| 青浦区| 曲水县| 景洪市| 民勤县| 库车县| 新野县| 阿坝| 资中县| 太和县| 阿荣旗| 博罗县| 五原县| 张家界市| 宁津县| 河西区| 元谋县| 台东县| 苍梧县| 措勤县| 大城县| 德安县| 志丹县| 沿河|