【问题标题】:opencv sliding windowopencv滑动窗口
【发布时间】:2012-08-08 05:29:26
【问题描述】:

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

【问题讨论】:

  • 据我所知,OpenCV 上没有这样的内置库。 OpenCV 不包含任何高级 GUI 功能。您必须编写自己的代码才能做到这一点。
  • 我实现了这样的算法来做到这一点,但是对于 openCV 来说没有这么重要的功能听起来很尴尬,因为滑动窗口非常有用并且适用于许多用途。
  • dlib.net 有很好的解决方案。特别是这个:dlib.net/dlib/image_processing/…

标签: opencv histogram svm libsvm


【解决方案1】:

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

另请参阅其他问题:

【讨论】:

  • 我知道 ROI,但问题是我如何将这种技术用作滑动窗口,更重要的是如何在 SVM 中使用它
  • 这是你想要做的吗? docs.opencv.org/modules/objdetect/doc/latent_svm.html 实现不是已经为你做了窗口化了吗?
  • 我没有做潜在的 SVM。它是常规的 SVM。但是我发现了一个 CvSVM,它已经在 opencv 中实现了 SVM。但最后我不得不自己写窗口滑块。
【解决方案2】:

基本代码可以是这样的。代码描述得很好。我希望。

这是 60x60 的单比例滑动窗口,第 30 步。

这个简单示例的结果是投资回报率。

您可以访问此基础教程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);
          }
         }

【讨论】:

  • 应该是Rect windows(col, row, windows_n_cols, windows_n_rows);
猜你喜欢
  • 1970-01-01
  • 2017-01-11
  • 2012-03-05
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
  • 2021-02-20
  • 2014-07-05
  • 2013-12-17
相关资源
最近更新 更多