opencv 连通区域计算,图像连通域计算

  opencv 连通区域计算,图像连通域计算

  这篇文章主要为大家介绍了开放计算机视觉连通域数量统计示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  

目录

学习目标:核心代码代码执行说明

 

  

学习目标:

 

  1.输入图像为分割结果图像

  2.根据种子填充法思路,遍历图像,得到每个连通域外接矩形坐标信息、面积信息

  

核心代码

 

  /*

  输入:

  src:待检测连通域的二值化图像

  输出:

  dst:标记后的图像

  羽毛状:连通域特征的清单(可自行查阅文档)

  返回:

  连通域数量。

  */

  内部连接检测(Mat src,Mat dst,vectorFeather featherList)

  {

  int rows=src.rows

  int cols=src.cols

  int标签值=0;

  点种子,邻居;

  堆栈点点堆栈

  //用于计算连通域的面积

  int area=0;

  //连通域的左边界,即外接最小矩形的左边框,横坐标值,依此类推

  int左边界=0;

  int右边界=0;

  int top boundary=0;

  int bottom boundary=0;

  //外接矩形框

  矩形盒;

  羽毛羽毛;

  向量堆栈点;

  羽毛清单。clear();

  夏令时。发布();

  dst=src。clone();

  for(int I=0;英语字母表中第九个字母行;我)

  {

  uchar * pRow=dst。普图查尔(一);

  for(int j=0;科尔斯基)

  {

  if (pRow[j]==255)

  {

  面积=0;

  //labelValue最大为254,最小为1.

  标签值

  //点(横坐标,纵坐标)

  seed=Point(j,I);

  夏令时。atuchar(seed)=标签值;

  pointStack.push(种子);

  面积;

  leftBoundary=seed.x

  rightBoundary=seed.x

  topBoundary=seed.y

  bottomBoundary=seed.y

  而(!pointStack.empty())

  {

  邻居=点(seed.x 1,种子。y);

  如果((seed.x!=(cols-1))(dst。atuchar(邻居)==255)

  {

  夏令时。atuchar(neighbor)=标签值;

  pointStack.push(邻居);

  面积;

  if (rightBoundary neighbor.x)

  rightBoundary=neighbor.x

  }

  邻居=点(seed.x,seed。y 1);

  如果((seed.y!=(rows-1))(dst。atu char(邻居)==255)

  {

  夏令时。atuchar(neighbor)=标签值;

  pointStack.push(邻居);

  面积;

  if (bottomBoundary neighbor.y)

  bottomBoundary=neighbor.y

  }

  邻居=点(seed.x - 1,seed。y);

  如果((seed.x!=0) (dst.atuchar(neighbor)==255)

  {

  夏令时。atuchar(neighbor)=标签值;

  pointStack.push(邻居);

  面积;

  if (leftBoundary neighbor.x)

  leftBoundary=neighbor.x

  }

  邻居=点(seed.x,seed。y-1);

  如果((seed.y!=0) (dst.atuchar(neighbor)==255)

  {

  夏令时。atuchar(neighbor)=标签值;

  pointStack.push(邻居);

  面积;

  if (topBoundary neighbor.y)

  topBoundary=neighbor.y

  }

  种子=点堆栈。top();

  点堆栈。pop();

  }

  box=Rect(左边界,上边界,右边界-左边界,下边界-上边界);

  羽毛面积=面积

  feather.boundingbox=box

  feather.label=标签值

  featherList.push_back(羽毛);

  }

  }

  }

  返回标签值

  }

  

代码执行说明

 

  font color=#999AAA在此不进行实例演示

  1、 输入图像为分割后图像

  2、 执行结果可根据羽毛清单信息自行绘制矩形框

  hr style= border:solid宽度 width :100 px height :1 px color=# 000000 size=1

  以上就是开放计算机视觉连通域数量统计学习示例的详细内容,更多关于开放计算机视觉连通域数量统计的资料请关注盛行信息技术软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • opencv图像识别数字,opencv 识别
  • opencv图像识别数字,opencv 识别,如何基于opencv实现简单的数字识别
  • opencv图像的旋转角度计算,opencv图像仿射变换
  • opencv图像的旋转角度计算,opencv图像仿射变换,OpenCV图像几何变换之透视变换
  • opencv图像的旋转角度计算,opencv 旋转任意角度
  • opencv图像的旋转角度计算,opencv 旋转任意角度,opencv图片的任意角度旋转实现示例
  • opencv图像处理函数,opencv图像轮廓合并
  • opencv图像处理函数,opencv图像轮廓合并,OpenCV图像处理之七种常用图像几何变换
  • opencv双线性插值函数,opencv 图像插值
  • LBPH人脸识别,基于opencv的人脸识别技术
  • LBPH人脸识别,基于opencv的人脸识别技术,Opencv LBPH人脸识别算法详解
  • ,,OpenCV黑帽运算(BLACKHAT)的使用
  • opencv双线性插值函数,opencv 图像插值,C++ OpenCV实现图像双三次插值算法详解
  • ,,C语言 OpenCV实现柱面投影
  • ,,C++ Opencv imfill孔洞填充函数的实现思路与代码
  • 留言与评论(共有 条评论)
       
    验证码: