Python 使用Opencv實現(xiàn)目標(biāo)檢測與識別的示例代碼
在上章節(jié)講述到圖像特征檢測與匹配 ,本章節(jié)是講述目標(biāo)檢測與識別。后者是在前者的基礎(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()
運行結(jié)果如圖所示:

這個例子是使用HOG特征進(jìn)行SVM算法訓(xùn)練,這部分已開始涉及到機器學(xué)習(xí)的方面,通過SVM算法訓(xùn)練數(shù)據(jù)集,然后根據(jù)某圖像與數(shù)據(jù)集進(jìn)行匹配。
到此這篇關(guān)于Python 使用Opencv實現(xiàn)目標(biāo)檢測與識別的示例代碼的文章就介紹到這了,更多相關(guān)Opencv 目標(biāo)檢測與識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python PIL庫讀取設(shè)置圖像的像素內(nèi)容方法示例
這篇文章主要為大家介紹了使用Python PIL庫Image模塊中的getpixel和putpixel方法讀取設(shè)置圖像的像素內(nèi)容實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Python網(wǎng)絡(luò)編程基于多線程實現(xiàn)多用戶全雙工聊天功能示例
這篇文章主要介紹了Python網(wǎng)絡(luò)編程基于多線程實現(xiàn)多用戶全雙工聊天功能,結(jié)合實例形式分析了Python網(wǎng)絡(luò)編程中使用多線程進(jìn)行多用戶異步通信的原理與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-04-04
Python內(nèi)存管理器如何實現(xiàn)池化技術(shù)
Python中的內(nèi)存管理是從三個方面來進(jìn)行的,一對象的引用計數(shù)機制,二垃圾回收機制,三內(nèi)存池機制,下面這篇文章主要給大家介紹了關(guān)于Python內(nèi)存管理器如何實現(xiàn)池化技術(shù)的相關(guān)資料,需要的朋友可以參考下2022-05-05
Python實現(xiàn)http接口自動化測試的示例代碼
這篇文章主要介紹了Python實現(xiàn)http接口自動化測試的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Python使用reportlab將目錄下所有的文本文件打印成pdf的方法
這篇文章主要介紹了Python使用reportlab將目錄下所有的文本文件打印成pdf的方法,涉及reportlab模塊操作pdf文件的相關(guān)技巧,需要的朋友可以參考下2015-05-05
Python自動修改電腦靜態(tài)IP地址的實現(xiàn)示例
通過Python自動修改電腦的靜態(tài)IP地址可以極大地提高我們的工作效率,減少手動修改IP地址帶來的錯誤,本文就來介紹一下Python自動修改電腦靜態(tài)IP地址的實現(xiàn)示例,感興趣的可以了解一下2023-11-11

