实战 | 粘连物体分割与计数应用--密集粘连药片分割+计数案例

文摘   科技   2024-11-06 07:45   重庆  

点击下方卡片,关注“OpenCV与AI深度学习

视觉/图像重磅干货,第一时间送达

导读
本文主要介绍一个密集粘连药片分割计数综合实例的实现方法和总结。

 背景介绍

在实际的视觉应用场景中,我们常常会遇到物体/元件的计数问题,而计数时比较常见的情形就是物体相邻或粘连,对相邻或粘连物体的分割将直接影响着最终计数的准确性。后面将分篇介绍粘连物体分割计数的常用方法,包括:
【1】形态学 + 连通域处理方法(点击查看)
【2】距离变换 + 分水岭分割方法(点击查看)
【3】其他方法(具体问题具体分析)
本文将对第【3】种方法以案例形式具体讲解。

实例演示与实现步骤

* 应用实例:密集粘连药片分割与计数
测试图像(图片来源--网络):

简单分析:

  • 上图中粘连区域较多,且粘连部分与药片本身高度差异不是很大,使用形态学或者分水岭算法很难将其简单分割出来。

  • 考虑可行的方法[1]层层突破,先分割独立药片,在逐步分割粘连药片。[2] 深度学习实例分割方法。

  • 本文还是采用传统方法[1]来实现。


实现步骤:

【1】先分割独立药片:
  • 阈值分割

  • 形态学腐蚀 + 开运算

  • 根据面积大小筛选,提取单独分离的药片

  • 膨胀--使轮廓接近原始大小(并备份此区域 + 计数)

【2】循环分割粘连药片:
  • 区域做差,提取剩余粘连药片部分

  • 求各区域对应凸包

  • 凸包与凸包处理前区域做差

  • 开运算

  • 闭运算(这个时候就凸显了Halcon Region的好处,可以对各个Region单独处理,如果是OpenCV基本会粘连成一片)

  • 闭运算结果与粘连药片区域做差


  • 根据面积大小筛选,剩余药片部分

  • 膨胀回原来大小

  • 把刚刚提取的药片叠加到第【1】步结果

循环步骤【2】,直到当前轮廓数量为0,计数累加

—THE END—

下载1:Pytorch常用函数手册

在「OpenCV与AI深度学习公众号后台回复:Pytorch函数手册即可下载学习全网第一份Pytorch函数常用手册,包括Tensors介绍、基础函数介绍、数据处理函数、优化函数、CUDA编程、多处理等十四章内容。

下载2:145个OpenCV实例应用代码
在「OpenCV与AI深度学习」公众号后台回复:OpenCV145即可下载学习145个OpenCV实例应用代码(Python和C++双语言实现)。

欢迎加入CV学习交流微信

觉得有用,记得点个赞和在看 

OpenCV与AI深度学习
专注计算机视觉、深度学习和人工智能领域干货、应用、行业资讯的分享交流!
 最新文章