[Halcon&图像] 阈值分割算法拓展

简介: [Halcon&图像] 阈值分割算法拓展

1、利用二维像素分类方法对彩色图像进行分割

read_image (Image, 'ic')
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'white', WindowID)
* 转换一个三通道图像成三个图像
decompose3 (Image, Red, Green, Blue)
dev_display (Red)
dev_set_color ('red')
draw_region (Pattern, WindowID)
* 计算双通道灰度值图像的直方图
histo_2dim (Pattern, Red, Blue, Histo2Dim)
threshold (Histo2Dim, Features, 1, 255)
* 使用循环结构元素关闭区域
closing_circle (Features, FeaturesClosed, 11.5)
dev_set_draw ('fill')
dev_set_part (0, 0, 511, 511)
dev_display (Red)
class_2dim_sup (Red, Blue, FeaturesClosed, RegionClass2Dim)

算法流程:手绘一个感兴趣区域,然后根据灰度值关系,找到另一幅图像中的相似区域

2、使用超球体分类像素

read_image (Image, 'ic')
gen_rectangle1 (Region, 360, 264, 371, 301)
gen_empty_region (EmptyRegion)
learn_ndim_norm (Region, EmptyRegion, Image, 'euclid', 10, 0.01, Radius, Center, Quality)
dev_set_color ('blue')
class_ndim_norm (Image, Regions, 'euclid', 'multiple', Radius, Center)
dev_display (Image)
dev_display (Regions)

核心算子:

learn_ndim_norm(Foreground, Background, Image : : Metric, Distance, MinNumberPercent : Radius, Center, Quality) — 从区域前景和多通道图像中对应的灰度值生成分类聚类

参数Distance决定了簇的最大距离半径。它描述了两个集群中心之间的最小距离。在参数距离较小的情况下,超立方体或超球体可以很好地逼近特征空间。

class_ndim_norm(MultiChannelImage : Regions : Metric, SingleMultiple, Radius, Center : ) — 使用超球体或超立方体分类像素。

class_ndim_norm对MultiChannelImage中给出的多通道图像的像素进行分类。结果以区域的形式返回,每个分类对象返回一个区域。参数Radius, Center必须设置为与learn_ndim_norm中使用的值相同。参数SingleMultiple确定为每个集群生成一个区域(‘single’)还是多个区域(‘multiple’)。半径分别决定了簇的半径或半边长。中心决定了它们的中心。

结果显示:

首先生成一个感兴趣区域

找到测试图中相似区域

3、采用区域网格方式对图像进行分割

read_image (Image1, 'C:/Users/Administrator/Desktop/1.jpg')
decompose3 (Image1, R, G, B)
trans_from_rgb (R, G, B, H, S, V, 'hsv')
dev_display (G)
get_image_size (G, Width, Height)
*生成网格区域
gen_grid_region (RegionGrid, 10, 10, 'lines', Width, Width)
reduce_domain (G, RegionGrid, ImageReduced)
threshold (ImageReduced, Region, 0, 150)
*blob分析提取硬币
closing_circle (Region, RegionClosing1, 10)
connection (RegionClosing1, ConnectedRegions3)
select_shape (ConnectedRegions3, SelectedRegions2, ['roundness','area'], 'and', [0.5822,2634.23], [1,20000])
closing_circle (SelectedRegions2, RegionClosing, 10)
opening_circle (RegionClosing, RegionOpening1, 20)
shape_trans (RegionOpening1, RegionTrans, 'outer_circle')
union1 (RegionTrans, RegionUnion)
reduce_domain (G, RegionUnion, ImageReduced1)
dev_display (ImageReduced1)

 


戳戳小手帮忙点个免费的赞和关注吧,嘿嘿。
目录
相关文章
|
8月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
734 0
|
8月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
415 8
|
8月前
|
存储 机器学习/深度学习 监控
网络管理监控软件的 C# 区间树性能阈值查询算法
针对网络管理监控软件的高效区间查询需求,本文提出基于区间树的优化方案。传统线性遍历效率低,10万条数据查询超800ms,难以满足实时性要求。区间树以平衡二叉搜索树结构,结合节点最大值剪枝策略,将查询复杂度从O(N)降至O(logN+K),显著提升性能。通过C#实现,支持按指标类型分组建树、增量插入与多维度联合查询,在10万记录下查询耗时仅约2.8ms,内存占用降低35%。测试表明,该方案有效解决高负载场景下的响应延迟问题,助力管理员快速定位异常设备,提升运维效率与系统稳定性。
350 4
|
9月前
|
canal 算法 vr&ar
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
251 1
|
9月前
|
存储 监控 算法
基于文化优化算法图像量化(Matlab代码实现)
基于文化优化算法图像量化(Matlab代码实现)
456 1
|
9月前
|
存储 算法 生物认证
基于Zhang-Suen算法的图像细化处理FPGA实现,包含testbench和matlab验证程序
本项目基于Zhang-Suen算法实现图像细化处理,支持FPGA与MATLAB双平台验证。通过对比,FPGA细化效果与MATLAB一致,可有效减少图像数据量,便于后续识别与矢量化处理。算法适用于字符识别、指纹识别等领域,配套完整仿真代码及操作说明。
|
9月前
|
机器学习/深度学习 监控 并行计算
【图像增强】局部对比度增强的CLAHE算法直方图增强研究(Matlab代码实现)
【图像增强】局部对比度增强的CLAHE算法直方图增强研究(Matlab代码实现)
1228 0
|
8月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
459 2
|
9月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
268 6
|
9月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
377 3

热门文章

最新文章