Python 使用Opencv實(shí)現(xiàn)目標(biāo)檢測(cè)與識(shí)別的示例代碼
在上章節(jié)講述到圖像特征檢測(cè)與匹配 ,本章節(jié)是講述目標(biāo)檢測(cè)與識(shí)別。后者是在前者的基礎(chǔ)上進(jìn)一步完善。
在本章中,我們使用HOG算法,HOG和SIFT、SURF同屬一種類型的描述符。功能代碼如下:
import cv2 def is_inside(o, i): ox, oy, ow, oh = o ix, iy, iw, ih = i # 如果符合條件,返回True,否則返回False return ox > ix and oy > iy and ox + ow < ix + iw and oy + oh < iy + ih # 根據(jù)坐標(biāo)畫出人物所在的位置 def draw_person(img, person): x, y, w, h = person cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 255), 2) # 定義HOG特征+SVM分類器 img = cv2.imread("people.jpg") hog = cv2.HOGDescriptor() hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) found, w = hog.detectMultiScale(img, winStride=(8, 8), scale=1.05) # 判斷坐標(biāo)位置是否有重疊 found_filtered = [] for ri, r in enumerate(found): for qi, q in enumerate(found): a = is_inside(r, q) if ri != qi and a: break else: found_filtered.append(r) # 勾畫篩選后的坐標(biāo)位置 for person in found_filtered: draw_person(img, person) # 顯示圖像 cv2.imshow("people detection", img) cv2.waitKey(0) cv2.destroyAllWindows()
運(yùn)行結(jié)果如圖所示:
這個(gè)例子是使用HOG特征進(jìn)行SVM算法訓(xùn)練,這部分已開始涉及到機(jī)器學(xué)習(xí)的方面,通過SVM算法訓(xùn)練數(shù)據(jù)集,然后根據(jù)某圖像與數(shù)據(jù)集進(jìn)行匹配。
到此這篇關(guān)于Python 使用Opencv實(shí)現(xiàn)目標(biāo)檢測(cè)與識(shí)別的示例代碼的文章就介紹到這了,更多相關(guān)Opencv 目標(biāo)檢測(cè)與識(shí)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python使用Opencv實(shí)現(xiàn)圖像特征檢測(cè)與匹配的方法
- python opencv檢測(cè)目標(biāo)顏色的實(shí)例講解
- 10個(gè)步驟Opencv輕松檢測(cè)出圖片中條形碼
- Python Opencv實(shí)現(xiàn)單目標(biāo)檢測(cè)的示例代碼
- Opencv Hough算法實(shí)現(xiàn)圖片中直線檢測(cè)
- 使用OpenCV檢測(cè)圖像中的矩形
- OpenCV實(shí)現(xiàn)圖像角點(diǎn)檢測(cè)
- opencv?canny邊緣檢測(cè)算法詳解
- 基于OpenCV的路面質(zhì)量檢測(cè)的實(shí)現(xiàn)
- opencv實(shí)現(xiàn)礦石圖片檢測(cè)礦石數(shù)量
相關(guān)文章
python實(shí)現(xiàn)去掉字符串中的\xa0、\t、\n
這篇文章主要介紹了python實(shí)現(xiàn)去掉字符串中的\xa0、\t、\n方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08numpy.std() 計(jì)算矩陣標(biāo)準(zhǔn)差的方法
今天小編就為大家分享一篇numpy.std() 計(jì)算矩陣標(biāo)準(zhǔn)差的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07python獲取柵格點(diǎn)和面值的實(shí)現(xiàn)
這篇文章主要介紹了python獲取柵格點(diǎn)和面值的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有多幫助。一起跟隨小編過來看看吧2020-03-03結(jié)合Python的SimpleHTTPServer源碼來解析socket通信
SimpleHTTPServer是Python中一個(gè)現(xiàn)成的HTTP服務(wù)器例子,本文我們將結(jié)合Python的SimpleHTTPServer源碼來解析socket通信,我們先來看一下socket的基本概念:2016-06-06Python基礎(chǔ)之模塊相關(guān)知識(shí)總結(jié)
今天帶大家復(fù)習(xí)Python基礎(chǔ)知識(shí),文中對(duì)模塊相關(guān)知識(shí)介紹的非常詳細(xì),對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05Pytorch卷積神經(jīng)網(wǎng)絡(luò)遷移學(xué)習(xí)的目標(biāo)及好處
這篇文章主要為大家介紹了Pytorch卷積神經(jīng)網(wǎng)絡(luò)遷移學(xué)習(xí)的目標(biāo)實(shí)現(xiàn)代碼及好處介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05提高Python生產(chǎn)力的五個(gè)Jupyter notebook插件
Jupyter Notebook 因其可用性和實(shí)用性而成為數(shù)據(jù)分析和機(jī)器學(xué)習(xí)模型領(lǐng)域最流行的 IDE,它也是很多數(shù)據(jù)初學(xué)者的首選 IDE。它最具特色的是,擁有豐富的插件、擴(kuò)展數(shù)據(jù)處理能力和提升工作效率2021-11-11python算法與數(shù)據(jù)結(jié)構(gòu)之單鏈表的實(shí)現(xiàn)代碼
鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。這篇文章主要介紹了python算法與數(shù)據(jù)結(jié)構(gòu)之單鏈表的實(shí)現(xiàn)代碼,需要的朋友可以參考下2019-06-06python實(shí)現(xiàn)應(yīng)用程序在右鍵菜單中添加打開方式功能
這篇文章主要介紹了python實(shí)現(xiàn)應(yīng)用程序在右鍵菜單中添加打開方式功能,本文分步驟給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-01-01