Python Opencv任意形狀目標(biāo)檢測(cè)并繪制框圖
opencv 進(jìn)行任意形狀目標(biāo)識(shí)別,供大家參考,具體內(nèi)容如下
工作中有一次需要在簡(jiǎn)單的圖上進(jìn)行目標(biāo)識(shí)別,目標(biāo)的形狀不固定,并且存在一定程度上的噪聲影響,但是噪聲影響不確定。這是一個(gè)簡(jiǎn)單的事情,因?yàn)閳D像并不復(fù)雜,現(xiàn)在將代碼公布如下:
import cv2
def otsu_seg(img):
ret_th, bin_img = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)
return ret_th, bin_img
def find_pole(bin_img):
img, contours, hierarchy = cv2.findContours(bin_img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
area = 0
for i in range(len(contours)):
area += cv2.contourArea(contours[i])
area_mean = area / len(contours)
mark = []
for i in range(len(contours)):
if cv2.contourArea(contours[i]) < area_mean:
mark.append(i)
return img, contours, hierarchy, mark
def draw_box(img,contours):
img = cv2.rectangle(img,
(contours[0][0], contours[0][1]),
(contours[1][0], contours[1][1]),
(255,255,255),
3)
return img
def main(img):
ret, th = otsu_seg(img)
img_new, contours, hierarchy, mark = find_pole(th)
for i in range(len(contours)):
if i not in mark:
left_point = contours[i].min(axis=1).min(axis=0)
right_point = contours[i].max(axis=1).max(axis=0)
img = draw_box(img, (left_point, right_point))
return img
if __name__ =="__main__":
img = cv2.imread('G:/test.png')
img = main(img)
cv2.imwrite('G:/test_d.png', img)

結(jié)果圖如下:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python opencv檢測(cè)目標(biāo)顏色的實(shí)例講解
- Python+OpenCV目標(biāo)跟蹤實(shí)現(xiàn)基本的運(yùn)動(dòng)檢測(cè)
- OpenCV實(shí)現(xiàn)幀差法檢測(cè)運(yùn)動(dòng)目標(biāo)
- OpenCV+python實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測(cè)功能
- 基于深度學(xué)習(xí)和OpenCV實(shí)現(xiàn)目標(biāo)檢測(cè)
- OpenCV實(shí)現(xiàn)車輛識(shí)別和運(yùn)動(dòng)目標(biāo)檢測(cè)
- 如何使用Python和OpenCV進(jìn)行實(shí)時(shí)目標(biāo)檢測(cè)實(shí)例詳解
相關(guān)文章
Django實(shí)現(xiàn)的自定義訪問日志模塊示例
這篇文章主要介紹了Django實(shí)現(xiàn)的自定義訪問日志模塊,結(jié)合具體實(shí)例形式分析了Django針對(duì)日志的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
使用python處理題庫表格并轉(zhuǎn)化為word形式的實(shí)現(xiàn)
這篇文章主要介紹了使用python處理題庫表格并轉(zhuǎn)化為word形式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
對(duì)tensorflow 的模型保存和調(diào)用實(shí)例講解
今天小編就為大家分享一篇對(duì)tensorflow 的模型保存和調(diào)用實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Python操作MySQL MongoDB Oracle三大數(shù)據(jù)庫深入對(duì)比
對(duì)于數(shù)據(jù)分析師來說,學(xué)習(xí)數(shù)據(jù)庫最重要的就是學(xué)習(xí)它們的查詢功能。這篇文章就以這個(gè)為切入點(diǎn),為大家講述如何用Python操作這3個(gè)數(shù)據(jù)庫2021-10-10
Python3如何日志同時(shí)輸出到控制臺(tái)和文件
這篇文章主要介紹了Python3如何日志同時(shí)輸出到控制臺(tái)和文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
python pytest進(jìn)階之xunit fixture詳解
這篇文章主要介紹了python pytest進(jìn)階之xunit fixture詳解,了解unittest的同學(xué)應(yīng)該知道我們?cè)诔跏蓟h(huán)境和銷毀工作時(shí),unittest使用的是setUp,tearDown方法,那么在pytest框架中同樣存在類似的方法,今天我們就來具體說明,需要的朋友可以參考下2019-06-06
Python unittest 簡(jiǎn)單實(shí)現(xiàn)參數(shù)化的方法
今天小編就為大家分享一篇Python unittest 簡(jiǎn)單實(shí)現(xiàn)參數(shù)化的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11

