注册

自动驾驶AVM环视算法–相机的联合标定算法实现和exe测试demo

更新:测试的exe程序,无需解压码就可以体验算法测试效果

链接:https://pan.baidu.com/s/1OfuslVNcTXAZWvwiqflWsA 提取码:zoef

1、压缩包解压后显示如下所示

测试文件包括:可执行的exe文件、测试的图片等。

2.双击exe就可以运行测试程序,测试程序界面显示如下所示:

3、开始标定按钮如下所示

右上角的就是标定出来的角度,红色的框就是检测出来的标定布黑色框。

运行结果如下所示

联合标定算法的具体实现如下所示

int R = 8;
 
g_num = 0;
//二值化  第一次 获取白色和黑色的二值区分
js_Binarization(data, w, h, 210, 0);
 
//获取联通区域
int MaxCANum = js_getConnectedArea(data, w, h, 0);
 
//二值化  第二次 获取白色最大的区域的二值图像,相当于提取标定板
js_Binarization(data, w, h, MaxCANum, 1);
 
//填补空洞
js_setwhite(data, w, h);
 
 
//数据复制  目的是保存原始数据,一下需要对图像进行修改
memcpy(g_imgDataGray, data, sizeof(char) * w * h);
 
 
//角点检测
js_CornerDetection(data, R, w, h, 200);//thre=210
 
二值化   第三次 获取到检测到的角点的二值图像
memset(data, 0x00, sizeof(char) * w * h);
for (int i = 0; i < g_num; i++)
{
	data[g_pointy[i] * w + g_pointx[i]] = 255;
}
 
 
//联通区域查找
int NumA = js_getConnectedArea(data, w, h, 1);
memcpy(g_imgDataGray1, data, sizeof(char) * w * h);
 
int result_num = 0;
float result_x[500];
float result_y[500];
int result_flag[500];
//计算平均点坐标
//result_num = js_CalculateAveragePointCoordinates(data, result_x, result_y, result_flag, w, h, NumA);
result_num = js_getSanplePoint(data, result_x, result_y, result_flag, w, h, NumA);
 
for (int i = 0; i < result_num; i++)
{
	printf("(%f %f)\n", result_x[i], result_y[i]);
}
if (result_num >= 8)
{
	//查找四边形	
	int ResultPointNum = js_QuadrangleDetection(g_imgDataGray, result_x, result_y, result_flag, g_ResultPoint, w, h, result_num);
 
	if (ResultPointNum != 2)
	{
		printf("Faile!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
		return -1;
	}
	else
	{
		//坐标点排序
		js_CoordinatePointSort(g_ResultPoint, w, ResultPointNum);
 
		for (int i = 0; i < ResultPointNum; i++)
		{
			printf("(%f %f)(%f %f)(%f %f)(%f %f)\n", g_ResultPoint[8 * i + 0], g_ResultPoint[8 * i + 1], g_ResultPoint[8 * i + 2], g_ResultPoint[8 * i + 3], g_ResultPoint[8 * i + 4], g_ResultPoint[8 * i + 5], g_ResultPoint[8 * i + 6], g_ResultPoint[8 * i + 7]);
		}
 
		//坐标点微调
		//js_CoordinatePointFineTun(g_imgDataGray, ResultPoint, w, h, ResultPointNum);
 
 
		//标定
		js_getcalresult(g_ResultPoint, a, f,c, w, h, Rx, Ry, Rz);
		return 0;
	}
}
else
{
	return -1;
}

-=||=-赞 (1)
未经允许不得转载:金书世界 » 自动驾驶AVM环视算法–相机的联合标定算法实现和exe测试demo

相关文章

评论 (0)