gpt4 book ai didi

c++ - OpenCV 的 findCirclesGrid 没有找到圆网格

转载 作者:搜寻专家 更新时间:2023-10-31 00:57:22 26 4
gpt4 key购买 nike

我正在尝试使用圆网格执行相机校准。我一直没有成功,因为 findCirclesGrid 总是返回 false,即使文件只是一个圆网格也是如此。我把它归结为这个简单的程序:

#include <iostream>

#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/calib3d.hpp"

using namespace std;
using namespace cv;

int main(int argc, char *argv[]) {
Mat image;
// read an image
if (argc < 2)
image = imread("circleGridSmall.jpg");
else
image = imread(argv[1]);

if (!image.data) {
cout << "Image file not found\n";
return 1;
}

imshow("image", image);
waitKey(0);

bool found;
vector<Point2f> pointbuf;

found = findCirclesGrid( image, Size(8, 12), pointbuf);
printf("found: %d\n", found);
return 0;
}

还有这张简单的图片:

grid of circles

即使这样,findCirclesGrid 也会返回 false。我错过了什么?

最佳答案

您在 Size() 函数中反转了 points_per_rowpoints_per_colum
根据功能文档 findCirclesGrid() , 2nd 参数 patternSize

Size(points_per_row, points_per_colum)

因此:

// not 
found = findCirclesGrid( image, Size(8, 12), pointbuf);
// but
found = findCirclesGrid( image, Size(12, 8), pointbuf);

关于c++ - OpenCV 的 findCirclesGrid 没有找到圆网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37603445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com