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)文章
零基礎(chǔ)寫(xiě)python爬蟲(chóng)之抓取百度貼吧代碼分享
前面幾篇都是以介紹基礎(chǔ)知識(shí)為主,各位童鞋估計(jì)都在犯嘀咕了,你到底寫(xiě)不寫(xiě)爬蟲(chóng)?。??額,好吧,本文就給大家寫(xiě)一個(gè)簡(jiǎn)單的百度貼吧的python爬蟲(chóng)代碼。2014-11-11Python調(diào)用ffmpeg開(kāi)源視頻處理庫(kù),批量處理視頻
本文主要介紹了如何用Python調(diào)用ffmpeg開(kāi)源視頻處理庫(kù),來(lái)實(shí)現(xiàn)視頻批量的處理:水印、背景音樂(lè)、剪輯、合并、幀率、速率、分辨率等操作2020-11-11Python爬蟲(chóng)基礎(chǔ)初探selenium
selenium最初是一個(gè)自動(dòng)化測(cè)試工具,而爬蟲(chóng)中使用它主要是為了解決requests無(wú)法執(zhí)行javaScript代碼的問(wèn)題。本文給大家分享Python爬蟲(chóng)基礎(chǔ)selenium知識(shí),包括selenium工作原理,感興趣的朋友跟隨小編一起看看吧2021-05-05用python實(shí)現(xiàn)的可以拷貝或剪切一個(gè)文件列表中的所有文件
python 實(shí)現(xiàn)剪切或是拷貝一個(gè)文件列表中的所有文件2009-04-04Python中dtype、type()和astype()的區(qū)別詳解
這篇文章主要介紹了Python中dtype、type()和astype()的區(qū)別詳解,type()是python內(nèi)置的函數(shù),type()返回?cái)?shù)據(jù)結(jié)構(gòu)類型(list、dict、numpy.ndarray 等),需要的朋友可以參考下2023-08-08Selenium關(guān)閉INFO:CONSOLE提示的解決
這篇文章主要介紹了Selenium關(guān)閉INFO:CONSOLE提示的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12