Python 使用Opencv實現目標檢測與識別的示例代碼
更新時間:2020年09月08日 10:43:40 作者:Xy-Huang
這篇文章主要介紹了Python 使用Opencv實現目標檢測與識別的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
在上章節(jié)講述到圖像特征檢測與匹配 ,本章節(jié)是講述目標檢測與識別。后者是在前者的基礎上進一步完善。
在本章中,我們使用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 # 根據坐標畫出人物所在的位置 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) # 判斷坐標位置是否有重疊 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) # 勾畫篩選后的坐標位置 for person in found_filtered: draw_person(img, person) # 顯示圖像 cv2.imshow("people detection", img) cv2.waitKey(0) cv2.destroyAllWindows()
運行結果如圖所示:
這個例子是使用HOG特征進行SVM算法訓練,這部分已開始涉及到機器學習的方面,通過SVM算法訓練數據集,然后根據某圖像與數據集進行匹配。
到此這篇關于Python 使用Opencv實現目標檢測與識別的示例代碼的文章就介紹到這了,更多相關Opencv 目標檢測與識別內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
結合Python的SimpleHTTPServer源碼來解析socket通信
SimpleHTTPServer是Python中一個現成的HTTP服務器例子,本文我們將結合Python的SimpleHTTPServer源碼來解析socket通信,我們先來看一下socket的基本概念:2016-06-06提高Python生產力的五個Jupyter notebook插件
Jupyter Notebook 因其可用性和實用性而成為數據分析和機器學習模型領域最流行的 IDE,它也是很多數據初學者的首選 IDE。它最具特色的是,擁有豐富的插件、擴展數據處理能力和提升工作效率2021-11-11