【issue-halcon例程学习】crystal.hdev

本文详细描述了一个程序流程,通过局部阈值处理、区域连接和形状变换,从图像中提取出六边形晶体。重点介绍`dyn_threshold`函数用于动态阈值分割,以及`connection`和`shape_trans`操作在晶体识别中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例程功能

 通过局部阈值和区域后处理提取六边形晶体。

代码如下

dev_close_window ()
dev_update_window ('off')
* ****
* step: acquire image
* ****
read_image (Image, 'crystal')
get_image_size (Image, Width, Height)
dev_open_window_fit_image (Image, 0, 0, Width, Height, WindowID)
set_display_font (WindowID, 12, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (2)
dev_display (Image)
disp_continue_message (WindowID, 'black', 'true')
stop ()
* ****
* step: segment image
* ****
* -> using a local threshold
mean_image (Image, ImageMean, 21, 21)
dyn_threshold (Image, ImageMean, RegionDynThresh, 8, 'dark')
* -> extract connected components
connection (RegionDynThresh, ConnectedRegions)
dev_display (ConnectedRegions)
disp_continue_message (WindowID, 'black', 'true')
stop ()
* ****
* step: process regions
* ****
shape_trans (ConnectedRegions, ConvexRegions, 'convex')
select_shape (ConvexRegions, LargeRegions, 'area', 'and', 600, 2000)
select_gray (LargeRegions, Image, Crystals, 'entropy', 'and', 1, 5.6)
dev_display (Image)
dev_display (Crystals)

要点

  1. dyn_threshold ——利用局部阈值分割图像;该算子第二个参数为处理后的图像,因此上一步一般会对图像滤波;(比手动设置阈值的threshold实用);
	mean_image (Image, ImageMean, 21, 21) //Image已读
	dyn_threshold (Image, ImageMean, RegionDynThresh, 8, 'dark')
  1. connection ——计算region中相连的成分,即生成了多了无交集的区域;
  2. shape_trans —— 变换区域的形状。接在connect后面进而提供更多的筛选信息;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值