應用非極大抑制方法,可排除候選的重疊檢測
我執行的環境為python3.6(anaconda3)+opencv3,ide:pycharm
1.其中如果安裝anaconda3就可以少安裝很多庫
2.如果安裝了anaconda3,就只需要配置乙個庫imutils
3.imutils安裝方法
pip install imutils
確保imutils版本大於v0.3.1
pip install –upgrade imutils可以更新版本
應用非極大抑制方法,可排除候選的重疊檢測效果如第一張圖
核心**如下:
# 引入所需要的庫
from __future__ import print_function #確保**同時在python2.7和python3上相容
from imutils.object_detection import non_max_suppression
from imutils import paths
import numpy as np
import argparse
import imutils #安裝庫pip install imutils ;pip install --upgrade imutils更新版本大於v0.3.1
import cv2
# 初始化我們的行人檢測器
#初始化方向梯度直方圖描述子
hog = cv2.hogdescriptor()
#設定支援向量機(support vector machine)使得它成為乙個預先訓練好了的行人檢測器
hog.setsvmdetector(cv2.hogdescriptor_getdefaultpeopledetector())
'''
構造了乙個尺度scale=1.05的影象金字塔,以及乙個分別在x方向和y方向步長為(4,4)畫素大小的滑窗
scale的尺度設定得越大,在影象金字塔中層的數目就越少,相應的檢測速度就越快,但是尺度太大會導致行人出現漏檢;
同樣的,如果scale設定得太小,將會急劇的增加影象金字塔的層數,這樣不僅耗費計算資源,而且還會急劇地增加檢測過程
中出現的假陽數目(也就是不是行人的被檢測成行人)。這表明,scale是在行人檢測過程中它是乙個重要的引數,
需要對scale進行調參。我會在後面的文章中對detectmultiscale中的每個引數做些調研。
'''# detect people in the image:
(rects, weights) = hog.detectmultiscale(image, winstride=(4, 4),
padding=(8, 8), scale=1.05)
#應用非極大抑制方法,通過設定乙個閾值來抑制那些重疊的邊框
rects = np.array([[x, y, x + w, y + h] for (x, y, w, h) in rects])
pick = non_max_suppression(rects, probs=none, overlapthresh=0.65)
pycharm工程python呼叫opencv實現usb攝像頭實時人臉檢測
pycharm工程pyqt5使用matplotlib繪圖原始碼
pyqt5快速入門教程
qt編寫高逼格彈幕
qt高仿360介面設計
qt編寫跨平台串列埠通訊(window+linux)
opencv兩種方法顯示中文
wrote by zoushaoyuan 2018-01-20
SQL進行行列轉換
假設現在有這樣一張表 create table dbo relconlist listid allint identity 1,1 not null listfkmainid varchar 20 collate chinese prc ci as not null listfkrelid varc...
sql進行行列轉換
1.分別求出孫悟空 豬八戒 沙僧的總打怪數 select sum kills from user1 a join user kills b on a.id b.user id where a.user name 孫悟空 select sum kills from user1 a join user ...
使用 case when進行行列轉換
固定列數的行列轉換,表結構為 轉換後 要求 建立表,源表,表名 student 只用一句sql 得到轉換結果。解答 方法一 通過生成臨時表的方式操作 select name sum yw as 語文 sum sx as 數學 sum wy as 英語 from select name case su...