基于Opencv的法兰盘螺纹孔位置确定(二)

本文介绍了一个使用四个相机,通过棋盘格坐标点提取、模板匹配和图像拼接来确定法兰盘螺纹孔位置的项目。首先,进行标定板平面与法兰盘平面的同平面标定,然后利用模板匹配技术,最后通过拼接图片来完成螺纹孔的位置确定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要指出的是是本项目共使用了四个相机,中心一个相机,边缘三个相机,旨在更好得提取螺纹特征并进行分类。因此该节中定位定位销并得到其他螺纹孔位置后,提取的图像是对应边缘相机投射到中心相机平面的图像。

请添加图片描述

一、棋盘格坐标点提取及对应变换

需要注意此处标定板平面与法兰盘螺纹孔平面在同一平面上,方便后续拼接
请添加图片描述

    //棋盘格坐标点
	vector<Point2d> points0;
	vector<Point2d> points1;
	vector<Point2d> points2;
	vector<Point2d> points3;

	//读取棋盘格坐标点
	ReadPoints("C:\\Users\\sunrise_oneday\\Desktop\\20221107\\Calib\\CalibrationResults\\0_res.txt", points0);
	ReadPoints("C:\\Users\\sunrise_oneday\\Desktop\\20221107\\Calib\\CalibrationResults\\1_res.txt", points1);
	ReadPoints("C:\\Users\\sunrise_oneday\\Desktop\\20221107\\Calib\\CalibrationResults\\2_res.txt", points2);
	ReadPoints("C:\\Users\\sunrise_oneday\\Desktop\\20221107\\Calib\\CalibrationResults\\3_res.txt", points3);

	//计算单应性矩阵(1与0,2与0,3与0)
	cv::Mat Homography10 = cv::findHomography(
		points1,
		points0, // 对应的点
		cv::RANSAC, // RANSAC 方法
		1.); // 到重复投影点的最大距离
	cv::Mat Homography20 = cv::findHomography(
		points2,
		points0, // 对应的点
		cv::RANSAC, // RANSAC 方法
		1.); // 到重复投影点的最大距离
	cv::Mat Homography30 = cv::findHomography(
		points3,
		points0, // 对应的点
		cv::RANSAC, // RANSAC 方法
		1.); // 到重复投影点的最大距离

	//读取法兰盘图像
	Mat image0 = cv::imread("D:\\Graduate\\Data\\0.bmp", 0);
	Mat image1 = cv::imread("D:\\Graduate\\Data\\1.bmp", 0);
	Mat image2 = cv::imread("D:\\Graduate\\Data\\2.bmp", 0);
	Mat image3 = cv::imread("D:\\Graduate\\Data\\3.bmp", 0);
	Mat tempImg = imread("D:\\Graduate\\Data\\temp.bmp", 0);


	//法兰盘投影到中心相机图像
	Mat imageResult1, imageResult2, imageResult3;
	cv::warpPerspective(image1, // 输入图像
		imageResult1, // 输出图像
		Homography10, // 单应矩阵
		cv::Size(image1.cols, image1.rows));// 输出图像的尺寸
	cv::warpPerspective(image2, // 输入图像
		imageResult2, // 输出图像
		Homography20, // 单应矩阵
		cv::Size(image1.cols, image1.rows));// 输出图像的尺寸
	cv::warpPerspective(image3, // 输入图像
		imageResult3, // 输出图像
		Homography30, // 单应矩阵
		cv::Size(image1.cols, image1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值