OpenCV 角检测返回零角向量

OpenCV corner detection returning null corners vector

本文关键字:零角 向量 检测 返回 OpenCV      更新时间:2023-10-16

我正在尝试检测棋盘图像的角落。我尝试过使用goodFeaturesToTrack和findChessboardCorners,但它们都以相同的方式失败了。它们返回的角向量似乎为空。(即大小是 -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中,如果它有任何区别的话。

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

请检查您是否不是在发布模式下编译,而是针对调试模式链接,反之亦然。

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