普通相机标定——功能函数编写

发布时间:2023年12月29日

前言

        如之前章节内容所述,相机内参标定的流程包括1)采集一些包含棋盘格的相机图像,2)检测棋盘格角点,3)标定计算相机内参与畸变系数,4)验证标定精度与效果。本章我们将开始具体的编程开发,首先完成一些功能性函数的实现。

        注:相关代码在Windows平台运行。

保存相机图像

        这里可以使用电脑自带摄像头进行标定,使用OpenCV的VideoCapture接口可打开摄像头获取图像数据。我们编写一个函数,其功能为打开制定id的摄像头(系统摄像头默认为0)并以指定帧间隔保存图像到某个文件夹下面,具体实现如下。

void SaveCameraImage(int camera_id, int save_frame_interval, char* save_img_path)
{
	// 1.创建图像路径文件夹,注意save_img_path指定的路径的上一层路径所在文件夹必须存在
	MyRmDir(save_img_path);
	_mkdir(save_img_path);
	// 2.打开指定id的摄像头,并设置图像分辨率为摄像头支持的最大分辨率
	cv::VideoCapture cap;
	cap.open(camera_id);
	if (!cap.isOpened())
	{
		printf("Error: open camera %d failed\n", camera_id);
		return;
	}
	cap.set(cv::CAP_PROP_FRAME_WIDTH, 1280);
	cap.set(cv::CAP_PROP_FRAME_HEIGHT, 720);

	// 3.按照指定帧率间隔保存图
文章来源:https://blog.csdn.net/lwx309025167/article/details/135293814
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。