opencv之求各连通区域内目标的最小外接矩形及其(2)
发布时间:2021-06-07
发布时间:2021-06-07
这是基于opencv的函数,包含图像二值化,最小外接矩形求法,及最小外接矩阵的长和宽,按照自己思路不一定规范,还望指正。
cvNamedWindow("image2",1);
cvShowImage("image2",gray);
bw=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1); otsu(gray,bw);
cvNamedWindow("image4",1);
cvShowImage("image4",bw);
// wb=cvCloneImage(bw);
// cvNot(bw,wb); 只有当目标区域为黑色背景时候,才对其取反。
dst=cvCloneImage(src);
cvFindContours(bw,storage,&contour,sizeof(CvContour),CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE);
for(;contour!=0;contour=contour->h_next)
{ CvBox2D rect=cvMinAreaRect2(contour,storage);
CvPoint2D32f rect_pts0[4];
cvBoxPoints(rect, rect_pts0);
//因为cvPolyLine要求点集的输入类型是CvPoint**
//所以要把 CvPoint2D32f 型的 rect_pts0 转换为 CvPoint 型的 rect_pts
//并赋予一个对应的指针 *pt
int npts = 4,k=0;
int aaa=0,bbb=0;
CvPoint rect_pts[4], *pt = rect_pts;