opencv之求各连通区域内目标的最小外接矩形及其(3)
发布时间:2021-06-07
发布时间:2021-06-07
这是基于opencv的函数,包含图像二值化,最小外接矩形求法,及最小外接矩阵的长和宽,按照自己思路不一定规范,还望指正。
printf("连通区域最小外接矩形顶点坐标分别为:\n");
for (int i=0; i<4; i++)
{
rect_pts[i]= cvPointFrom32f(rect_pts0[i]);
printf("%d %d\n",rect_pts[i].x,rect_pts[i].y);
aaa=(int)sqrt((pow((rect_pts[0].x-rect_pts[1].x),2)+pow((rect_pts[0].y-rect_pts[1].y),2)));
bbb=(int)sqrt((pow((rect_pts[0].x-rect_pts[3].x),2)+pow((rect_pts[0].y-rect_pts[3].y),2)));
if(aaa<bbb)
{
k=aaa;
aaa=bbb;
bbb=k;
}
}
printf("最小外接矩形的长为:%d,宽为:%d。\n\n",aaa,bbb);
//chang=rect_pts[0]-rect_pts[3];
//kuan=rect_pts[0]-rect_pts[1];
//printf("最小外接矩形的长为:%d,宽为:%d\n",chang,kuan);
//画出Box
cvPolyLine(dst, &pt, &npts, 1, 1, CV_RGB(255,0,0), 1);
}
cvNamedWindow("image5",1);
cvShowImage("image5",dst);