use*_*676 3 java android opencv
嗨,我正在开发Android,我想用我的手机相机做点什么.我正在使用OpenCV-2.4.9 Java包来提取HOG功能,但我对输出向量感到困惑.
我的图片尺寸为480x640.我将窗口设置为48x64,块大小为24x32,每个单元格为12x16和8个单元格.因此,对于每个窗口,我应该获得128维数据来描述它.运行以下代码后:
MatOfFloat keyPoints = new MatOfFloat();
Hog.compute(imagePatch, keyPoints);
Run Code Online (Sandbox Code Playgroud)
keyPoints是一个长度为172800的数组(我认为它是1350x128).我认为应该有一个参数来设置窗口步幅来控制窗口的数量.在库中,还有另一个控制窗口步幅的功能:
public void compute(Mat img, MatOfFloat descriptors, Size winStride, Size padding, MatOfPoint locations)
Run Code Online (Sandbox Code Playgroud)
但我不知道参数的含义.任何人都可以帮我解决这个问题吗?
void compute(Mat img,MatOfFloat描述符,Size winStride,Size padding,MatOfPoint位置)
Mat img
输入图像进行测试
MatOfFloat描述符
描述符的输出向量,一个用于滑动窗口搜索中的每个窗口.在c ++中,它是一个被视为数组的向量,即所有描述符都在一个长数组的描述符[0]中.您需要知道描述符大小以获取每个描述符:Hog.getDescriptorSize().
尺寸winStride
size.width =滑动窗口搜索的x方向重叠量;
size.height =滑动窗口搜索的y方向重叠量;
因此,如果将其设置为1,1,它将检查以每个像素为中心的窗口.然而,这将是缓慢的,因此您可以将其设置为单元格大小以进行良好的权衡.
尺寸填充
这会在图像周围添加边框,以便检测器可以找到靠近边缘的东西.没有这个,第一个检测点将窗口大小减半到图像中,因此一个很好的选择是将其设置为窗口大小或窗口大小的一半,或者单元格大小的某个顺序.
MatOfPoint的位置
这是您可以预先指定的位置列表,例如,如果您只需要某些位置的描述符.将其留空以进行完整搜索.
例
免责声明:可能不是正确的java,但应该让你知道参数做什么...
提取一些猪
MatOfFloat descriptors(0) //an empty vector of descriptors
Size winStride(Hog.width/2,Hog.height/2) //50% overlap in the sliding window
Size padding(0,0) //no padding around the image
MatOfPoint locations(0) ////an empty vector of locations, so perform full search
compute(img , descriptors, winStride, padding, locations)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3204 次 |
| 最近记录: |