c++ - OpenCV 角点检测返回空角 vector

标签 c++ qt opencv

我正在尝试检测棋盘图像的角。我尝试过使用 goodFeaturesToTrack 和 findChessboardCorners,但它们都以同样的方式失败。他们返回的角 vector 似乎为空。 (即大小是-2948392 ...内存错误类型的东西)。

  gray = imread("C:/Users/Wesley/Desktop/New folder/cb.png",0);

  // Parameters for Shi-Tomasi algorithm
  std::vector<cv::Point2f> corners;
  double qualityLevel = 0.1;
  double minDistance = 10;
  int blockSize = 3;
  bool useHarrisDetector = false;
  double k = 0.04;
  int maxCorners = 30;
  Mat copy;
  copy = gray.clone();

  // Apply corner detection
  goodFeaturesToTrack(gray,
                 corners,
                 maxCorners,
                 qualityLevel,
                 minDistance,
                 Mat(),
                 blockSize,
                 useHarrisDetector,
                 k );

      int r = 4;
      for( int i = 0; i < corners.size(); i++ )
      { circle( copy, corners[i], r, Scalar(255, 255,255), -1, 8, 0 ); }

  // Show what you got
  imshow( "source_window", copy );

这一定是我做错了什么。由于内存访问冲突,一旦调用 corners.size(),它就会崩溃。如果它有任何区别,这在 Qt 中。

希望有人能指出我正确的方向!

最佳答案

请检查您不是在 Release模式下编译,而是在 Debug模式下链接,反之亦然。

如果您链接到错误的库,OpenCV 会给您带来最奇怪的行为。

关于c++ - OpenCV 角点检测返回空角 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29082280/

相关文章:

c++ - 如何在一次只允许 1 个选定项目的 ListView 中选择一个项目

c++ - 如何限制在 VS 设计器中创建的编辑框中的数字

android - 尝试为 android 示例构建 OpenCV 时运行构建器 'CDT Builder' 时出错

opencv - 用于跟踪除 Windows Kinect 人体手势之外的其他对象的 API 可用性

python - 如何改进从图像中提取文本?

c# - 使用tapi监控多个电话并拨号或挂断

c++ - 运行最基本的 sfml 应用程序时的性能问题

qt - 如何将输入和输出文件放入qtcreator

ruby-on-rails - 为 capybara 安装 webkit

qt - 在 QML 中创建带有动态参数的 ListView