更新:测试的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)