當前位置:
首頁 >
OpenCV关于hog特征向量的个数
發布時間:2025/3/21
29
豆豆
生活随笔
收集整理的這篇文章主要介紹了
OpenCV关于hog特征向量的个数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 其實原理是很簡單的, 在OpenCV實現的是R-HOG, 即對圖像img->窗口window->塊block->細胞單元cell進行向量統計 首先看描述器的構造函數, 我用 ??????? HOGDescriptor *desc=new HOGDescriptor(cvSize(40,80),cvSize(10,20),cvSize(5,10),cvSize(5,5),9); 進行測試.. ? 這里的window為(40, 80), block為(10, 20), block的步進stride是(5, 10), 細胞單元cell是5 * 5像素, 每個cell的直方圖bin是9. 于是, 對每一個cell, 有9個向量 對每一個block, 有2*4個cell, 所以有72個向量 對于window而言, 計算block個數的方法是, 對兩個方向計算 (window_size - block_size)/block_stride + 1, 算得共有7*7 個block, 共有72*49=3528個向量 ? 在搜索img, 計算圖片特征的時候, 調用desc->compute(img,w,cvSize(10,20),cvSize(0,0)); 其中img是輸入圖像, w是保存向量的vector, 第三個是window的步進, 第四個是padding, 用于填充圖片以適應大小的. ? 當設置padding為默認(0,0)時, 計算(img_size - window_size) / window_stride +1 不一定為整數 在compute函數中可以看到: ??? padding.width = (int)alignSize(std::max(padding.width, 0), cacheStride.width);
??? padding.height = (int)alignSize(std::max(padding.height, 0), cacheStride.height);
即padding的大小會自動適應stride的值. gz_ricky輸入的圖片是96*160的, 對應了5.6 * 5, 經函數調整后變成6 * 5 =30 ? ?所以對這張96*160的圖片, 共有105840個特征向量 ? PS. 如果設置了padding的值, 圖片就會先伸展padding*2, 或許是和內部那個paddingTL和paddingBR兩個有關, 即在Top-Left和Button-Right兩個方向都擴展. 計算特征數方法同上. ?hog特征值會生成以后,? 可以轉入svm訓練的階段了..
總結
以上是生活随笔為你收集整理的OpenCV关于hog特征向量的个数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV HOGDescriptor
- 下一篇: VS和matlab混合编程的推荐书籍!