opencv滑动窗口

问题描述:

是否有任何内置的库,用于在opencv 2.x版本的图像上滑动窗口(自定义大小)? 我试图自己编写算法,但是我发现它非常痛苦,可能很容易出错。 我需要滑过图像并为svm的输入创建直方图。 HOG描述符有一个用于计算HOG特征但我有自己的特征集因此我只需要一个算法让我滑过图像。opencv滑动窗口

+0

就我所知,没有OpenCV的内置库。 OpenCV不包含任何高级GUI功能。你将不得不编写自己的代码来做到这一点。 – bubble 2012-08-11 06:33:18

+0

我实现了这样的算法来做到这一点,但这听起来很尴尬的OpenCV没有这样一个重要的功能,因为滑动窗口是非常有用的,适用于很多目的。 – pms 2012-08-13 18:50:05

您可以在cv::Mat对象上定义感兴趣区域(ROI),这会为您提供一个指向子窗口的新对象Mat。这不会复制底层数据,而只是使用适当的元数据创建新的标题。

另见本的其他问题:

+0

我知道投资回报率,但问题是如何将此技术用作滑动窗口,更重要的是如何在SVM中使用此功能 – pms 2012-08-13 18:09:05

+0

这是您正在尝试执行的操作吗? http://docs.opencv.org/modules/objdetect/doc/latent_svm.html这个实现是否已经为你开启了窗口? – gavinb 2012-08-14 13:29:03

+0

我不是在做潜伏支持向量机。它是规则的SVM。但是我发现了一个已经在opencv中实现了SVM的CvSVM。但最后我不得不自己编写窗口滑块。 – pms 2012-08-23 07:32:33

Basic代码可以看起来像。代码被描述得足够好。我希望。

这是单一尺度slideing窗口60X60女巫步骤30.

enter image description here

这个简单的例子的结果是ROI。

enter image description here

您可以访问此基础教程Tutorial Here

 // Parameters of your slideing window 

     int windows_n_rows = 60; 
     int windows_n_cols = 60; 

     // Step of each window 
     int StepSlide = 30; 

for (int row = 0; row <= LoadedImage.rows - windows_n_rows; row += StepSlide) 
     { 

    for (int col = 0; col <= LoadedImage.cols - windows_n_cols; col += StepSlide) 
      { 

      Rect windows(col, row, windows_n_rows, windows_n_cols); 
      Mat Roi = LoadedImage(windows); 
      } 
     }