轮廓排序存储问题

weif6565 2014-11-13 11:34:12
首先我得到二值图像dst的所有轮廓
cvFindContours(dst, stor, &cont, sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE, cvPoint(0, 0));
然后寻找符合条件(轮廓外接矩阵>maxarea)的轮廓
for (cont; cont != 0; cont = cont->h_next)
{
N_area++;
double tmparea = fabs(cvContourArea(cont_temp));
CvRect r = cvBoundingRect(cont_temp, 0);
if (tmparea > maxarea)
{
maxarea = tmparea;
c = cont;
c = cvApproxPoly(c, sizeof(CvContour), stor, CV_POLY_APPROX_DP, 0.1);//close to the contours
}
}
我想把符合条件的这些轮廓按轮廓大小重新排序存储到CvSeq数据类型中。

请问如何实现?
...全文
306 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayo_ai 2015-01-12
  • 打赏
  • 举报
回复
根据轮廓点数 或者先通过00阶矩求轮廓周长。按照周长大小排序。不过cvFindContours找到的轮廓并非记录了轮廓上所有点。所以用轮廓上的点数来判断轮廓大小估计有点问题。

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧