opencv九点标定代码
时间: 2023-09-09 18:10:05 浏览: 140
基于OpenCv的机器人九点标定法
5星 · 资源好评率100%
以下是使用OpenCV进行九点标定的示例代码:
```
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取标定板图片
Mat frame = imread("board.jpg");
// 定义标定板大小
Size boardSize(3, 3);
// 保存角点坐标
vector<Point2f> corners;
// 寻找角点
bool found = findChessboardCorners(frame, boardSize, corners);
if (found) {
// 亚像素级角点精确化
cornerSubPix(frame, corners, Size(11, 11), Size(-1, -1), TermCriteria(TermCriteria::EPS + TermCriteria::COUNT, 30, 0.1));
// 绘制角点
drawChessboardCorners(frame, boardSize, corners, found);
// 显示结果
imshow("Calibration", frame);
waitKey();
}
return 0;
}
```
在这个示例中,我们首先使用`imread()`函数读取标定板图片。然后,我们定义标定板大小为3x3,并使用`findChessboardCorners()`函数寻找角点。如果找到了角点,我们使用`cornerSubPix()`函数对角点进行亚像素级精确化,然后使用`drawChessboardCorners()`函数绘制角点。最后,我们使用`imshow()`函数显示结果,并使用`waitKey()`函数等待用户按下键盘上的任意键。
阅读全文