OPENCV中detectMultiScale 函式返回的

2021-05-16 10:22:35 字數 1736 閱讀 2016

1樓:匿名使用者

對輸入**進行行人檢測時由於**的大小不一樣,所以要用到多尺度檢測。這裡是用hog類的方法detectmultiscale。引數解釋如下:

hogdescriptor::detectmultiscale(const gpumat& img, vector& found_locations, doublehit_threshold=0, size win_stride=size(), size padding=size(), double scale0=1.05, int group_threshold=2)

該函式表示對輸入的**img進行多尺度行人檢測 img為輸入待檢測的**;

found_locations為檢測到目標區域列表;

引數3為程式內部計算為行人目標的閾值,也就是檢測到的特徵到svm分類超平面的距離;

引數4為滑動視窗每次移動的距離。它必須是塊移動的整數倍;

引數5為影象擴充的大小;

引數6  :scale0為比例係數,即被檢測影象每一次被壓縮的比例,這個可以從opencv的hog.cpp原始檔中看出:

for( levels = 0; levels < nlevels; levels++ )

之前一直理解的是檢測視窗會不斷的按照比例係數放大,其實檢測視窗是固定不變的,是待檢測影象按照比例係數縮小。

引數7為組閾值,即校正係數,當一個目標被多個視窗檢測出來時,該引數此時就起了調節作用,為0時表示不起調節作用。

最後對檢測出來的目標矩形框,要採用一些方法處理,比如說2個目標框巢狀著,則選擇最外面的那個框。 因為hog檢測出的矩形框比實際人體框要稍微大些,所以需要對這些矩形框大小尺寸做一些調整。

在進行交通燈檢測的程式編寫中,經過各種調整,還是使用detectmultiscale(src, found,0,size(8,8), size(32,32), 1.05, 2)最終通過了,其他的引數一直報錯。其中第五個引數為size(0,0)時,檢測出的矩形框數量為65個,size(32,32)時檢測出的矩形框為83個,調整為size(64,64)後檢測到的矩形框增加為109個,說明這個引數的尺寸越大,好像檢測量越大,檢測出的矩形框越多。

暫時是這麼認為的,以後想清楚了再來更新吧。

下面的一組實驗結果是對第4個引數的理解,第四個引數越大,檢測視窗移動的步長越大,檢測的目標個數越小。(檢測是在訓練樣本數量很少的情況下完成的,提高訓練樣本數量可以增加檢測的精度)

下圖是引數為detectmultiscale(src, found,0,size(4,4), size(0,0), 1.05, 2)的檢測結果,矩形框個數為38個

下圖是引數為detectmultiscale(src, found,0,size(16,16), size(0,0), 1.05, 2)的檢測結果,矩形框個數為88個

當第4個引數為size(64,64)時,檢測視窗僅為12個。detectmultiscale(src, found,0,size(32,32), size(0,0), 1.05, 2)

2樓:澀殿

返回的是檢測到區域的座標(x,y)檔案裡只寫了影象的位置,我覺得可能是指小區域內左上角的值(如果你知道了請指教我一下,感謝),這個我找了很久沒有得到準確的答案,還有兩個引數分別是指檢測出的小區域的寬和高。

opencv中有幾個函式是什麼意思?

3樓:

1、cvloadimage:將影象檔案載入至記憶體;

2、cvnamedwindow:在螢幕上建立一個視窗;

opencv怎麼將影象資料存入矩陣

我也不是很熟,但是mat存影象也用過,試著說一下我的理解 一般的影象檔案格式使用的是 unsigned 8bits吧,cvmat矩陣對應的引數型別就是 cv 8uc1,cv 8uc2,cv 8uc3。最後的1 2 3表示通道數,譬如rgb3通道就用cv 8uc3 而float 是32位的,對應cvm...

怎麼用python和opencv顯示影象

opencv顯示影象要把影象放在工程檔案的debug python 怎樣將opencv處理的影象顯示在label標籤上 你好,請看下面的 用來顯示影象的 from tkinter import def main filename r c users administrator desktop nan...

opencv3 2為什麼還不釋出官方python3版本

育知同創教育 網上大部分的資料都是2.x的,而自己用的卻是3.x的,卻是很麻煩,但是從進化的角度來說,如果python死在2.x的話,那麼他就真的沒有什麼前途了,3.x上 print必須要打括號才能正常使用,從這一點上就可以看出來3.x更加強調規範 你可以自己下wheel檔案裝啊,已經有支援py3的...