Halcon 图像分割(粘连物体循环分割)
资源
链接:https://pan.baidu.com/s/14rj-BKH-7wtF-DCIrTm17w
提取码:re93
图片
代码
* 1.读取并显示图片 *************************************
dev_close_window ()
read_image (Image, './img.bmp')
get_image_size (Image, Width, Height)
dev_open_window_fit_size (0, 0, Width, Height, -1, -1, WindowHandle)
dev_display (Image)set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (3)* 2.初步分割 *************************************
threshold (Image, Region, 0, 100)
* 腐蚀运算
erosion_circle (Region, RegionErosion, 4.5)
* 开运算
opening_circle (RegionErosion, RegionOpening, 1.5)
* 连通域分析
connection (RegionOpening, ConnectedRegions)* 3.初步分割筛选 *************************************
* 连通域筛选
select_shape (ConnectedRegions, SelectedRegions, ['area','rectangularity'], 'and', [100,0.5], [700,1])
* 产品区域膨胀
dilation_circle (SelectedRegions, RegionDilation, 4.5)
* 减去已经筛选的产品
difference (ConnectedRegions, RegionDilation, SelectedRegions1)* 最终结果变量
gen_empty_obj (ObjectsConcat)
concat_obj (RegionDilation, ObjectsConcat, ObjectsConcat)* 4.循环分割筛选 *************************************
for Index := 1 to 7 by 1* a.粘连产品中间区域 ************************************** 粘连产品凸性处理shape_trans (SelectedRegions1, RegionTrans, 'convex')* 凸性区域 - 粘连区域difference (RegionTrans, SelectedRegions1, RegionDifference)* 去除小区域opening_circle (RegionDifference, RegionOpening1, 3.5)* 链接中间区域closing_circle (RegionOpening1, RegionClosing, 30.5)* 粘连产品减去中间区域difference (SelectedRegions1, RegionClosing, RegionDifference1)* 连通域分析connection (RegionDifference1, ConnectedRegions1)* b.粘连产品 分割后筛选 ************************************** 筛选分割后 单个产品select_shape (ConnectedRegions1, SelectedRegions2, 'area', 'and', 100, 700)* 膨胀 恢复原始区域dilation_circle (SelectedRegions2, RegionDilation1, 4.5)* 单个产品添加到结果中去concat_obj (ObjectsConcat, RegionDilation1, ObjectsConcat)* c.去除分割后的产品 再次筛选产品 ************************************** 去除分割后的产品difference (SelectedRegions1, RegionDilation1, RegionDifference2)* 再次筛选分割的产品select_shape (RegionDifference2, SelectedRegions3, 'area', 'and', 100, 700)* 膨胀dilation_circle (SelectedRegions3, RegionDilation2, 4.5)* 分割后的产品 添加到结果中去concat_obj (ObjectsConcat, RegionDilation2, ObjectsConcat)* d.仍然粘连的产品 进入下次循环 *************************************select_shape (RegionDifference2, SelectedRegions1, 'area', 'and', 700, 99999)* 统计仍然粘连的产品count_obj (SelectedRegions1, Number)* 退出循环if(Number == 0) breakendif
endfor* 6.筛选与中心交叉点计算 *****************************************
select_shape (ObjectsConcat, SelectedRegions4, 'area', 'and', 200, 99999)
area_center (SelectedRegions4, Area, Row, Column)
gen_cross_contour_xld (Cross, Row, Column, 15, 0.785398)
count_obj (ObjectsConcat, Number1)
* 5.显示结果 *****************************************
dev_display (Image)
* dev_display (ObjectsConcat)
disp_message (WindowHandle, '产品个数:' + Number1 $'.2f', 'window', 10, 10, 'black', 'true')
dev_display (Cross)
结果
Halcon 图像分割(粘连物体循环分割)相关推荐
- 基于Kmeans聚类算法的图像分割(色彩分割)实战
基于Kmeans聚类算法的图像分割(色彩分割)实战 图像分割是将一幅图像分割成多个像素区域的任务.属于同一对象类型的所有像素都被分配到同一类别下.图像分类是给一副完整的图像一个类别,目标检测是检测到图 ...
- halcon学习之阈值分割(threshold、binary_threshold、dyn_threshold、var_threshold、auto_threshold、fast_threshold、)
1. threshold(Image : Region : MinGray, MaxGray : ) 全局阈值分割,适用于环境稳定,目标与背景存在明显的灰度差的场合. 应用1:利用灰度直方图确定阈值进 ...
- 7.2 Python图像处理之图像分割-单阈值分割
7.2 Python图像处理之图像分割-单阈值分割 文章目录 7.2 Python图像处理之图像分割-单阈值分割 1 算法原理 2 代码 3 效果 1 算法原理 单阈值分割算法原理: 单阈值分割是指将 ...
- 图像分割与视频分割方法
图像分割 图像分割介绍 1.普通分割 2.语义分割 3.实例分割(instance segmentation) 传统的图像分割方法 1.基于阈值的图像分割 单阈值分割 局部阈值分割 阈值的选取 直方图 ...
- 深度学习之图像分割(语义分割)
深度学习之图像分割 深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,是指通过学习样本数据的内在规律和表示层次,进而挖掘出数据 ...
- 图像分割技术语义分割代码_用5行代码对150类对象进行语义分割
图像分割技术语义分割代码 It is now possible to perform segmentation on 150 classes of objects using ade20k model ...
- matlab函数im2bw_图像分割之阈值分割(matlab)(转载)
转载自:https://blog.csdn.net/weixin_39824223/article/details/112249214 matlab函数im2bw_图像分割之阈值分割(matlab) ...
- Halcon机器视觉实战--分水岭分割+距离变换实现粘连物体图像分割
分水岭的原理 把图像的灰度看作高度图,图像中每个像素点的灰度值看作该点的高度,高灰度值代表山脉,低灰度值代表盆地,每个局部最小值及其周围区域称为集水盆,而集水盆的边界则形成分水岭. 分水岭算法的步骤 ...
- 做形态学方法的团队_图像分割实战-分水岭分割方法和GrabCut 算法
1. 分水岭分割方法 它是依赖于形态学的,图像的灰度等级不一样,如果图像的灰度等级一样的情况下怎么人为的把它造成不一样?可以通过距离变换实现,这样它们的灰度值就有了阶梯状的变换.风水岭算法常见的有三种 ...
最新文章
- sqlmap 连接mysql_sqlmap连接Mysql实现getshell | CN-SEC 中文网
- React 教程:快速上手指南
- mysql常用日期时间函数_MySql常用日期时间函数
- vue中引入jquery
- Qt修炼手册7_图形:用户自定义QGraphicsItem
- linux--select
- UVA - 10003 - Cutting Sticks
- 面象对象设计6大原则之一:单一职责原则
- 烦人的恶意骚扰电话终于要被整治了!移动联通齐发声明...
- python书籍pdf文档密码-Python玩转PDF的各种骚操作
- 推荐系统组队学习——WideDeep
- https默认端口_Java企业信息化平台O2OA如何配置服务器来启用HTTPS(SSL)
- 最好用的Redis客户端
- 前端怎么画三角形_css如何画三角形?
- Laragon 升级composer
- python实现指纹识别毕业论文_(完整版)指纹识别系统本科毕业论文
- 色度学:RGB颜色空间与CMYK颜色空间的比较与图示
- ALEXA站长全攻略(转)
- arm解锁 j-flash_J-Link固件烧录以及使用J-Flash向arm硬件板下载固件程序
- 【读书笔记】AUTOSAR规范与车用控制器软件开发02