HALCON图像分割案例之dots_image.hdev解读

适用范围:

       此算子适合文字识别(OCR)或者切割里增强点状印刷字体的区域,也适合某些材质上点状缺陷的分割。

代码解释:

* This example program shows how to use dots_image to segment a dot print.
dev_update_pc ('off')
dev_update_window ('off')
dev_update_var ('off')
read_image (Image, 'needle1')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
* Since the needle1 image would be fairly easy to segment, we will make life a
* little harder by adding a background texture to the image.
**********加载增加噪音背景图像,增加分割难度***********************
read_image (ImageNoise, 'angio-part')
***********切割背景图尺寸与需要切割文字的图像大小一致
crop_part (ImageNoise, ImagePart, 0, 0, Width, Height)
***********叠加噪音背景图像到原图***********************
mult_image (Image, ImagePart, ImageResult, 0.015, 0)
* Use dots_image to enhance the dot print.
***********1、Diameter=5,适用直径为5的点滤波器核进行滤波************
***********2、FilterType='dark',选择增强图片中黑色的区域***********
***********3、PixelShift=2,增加输出图像的对比度************
dots_image (ImageResult, DotImage, 5, 'dark', 2)
***********二值化,分割出文字部分区域***************
threshold (DotImage, Region, 80, 255)
* The following code connects the individual dots into characters.
***********对选中的区域进行90度方向的闭合联通操作***************
closing_rectangle1 (Region, RegionClosing1, 1, 5)
***********对选中的区域进行0度方向的闭合联通操作***************
closing_rectangle1 (RegionClosing1, RegionClosing2, 5, 1)
***********生成45度闭合操作结构元素***************
gen_rectangle2 (Rectangle45, 10, 10, rad(45), 3, 0)
***********对选中的区域进行45度方向的闭合联通操作***************
closing (RegionClosing2, Rectangle45, RegionClosing3)
***********生成135度闭合操作结构元素***************
gen_rectangle2 (Rectangle135, 10, 10, rad(135), 3, 0)
***********对选中的区域进行135度方向的闭合联通操作***************
closing (RegionClosing3, Rectangle135, RegionClosing4)
***********以上4个闭合操作分别对区域进行8个方向联通的闭合操作,让字符点与点之间得以有效连接
***********切割区域内的各个联通分量子区域到区域数组**************
connection (RegionClosing4, ConnectedRegions)
***********对于子联通区域数字进行面积、高度的阈值区域筛选,只保留需要的大文字区域****
select_shape (ConnectedRegions, SelectedRegions, ['area','height'], 'and', [100,20], [700,40])
* Since the closings may have resulted in merged characters, we need to
* separate them again.
***********文字水平方向可能由于被联通在一起,使用水平宽度距离及偏差比例参数进行二次分割
***********确保文字不存在联通的情况
***********参数Distance为参考文字区域正常宽度距离值输入即可,只有当子区域的宽度大于Distance的1.5倍时才会进入此分区算子的实际分区操作,宽度不满足条件的区域不做任何处理
***********参数Percent为分割后的区域相对于Distance宽度的最大偏移量:Distance*Percent*0.01
partition_dynamic (SelectedRegions, Partitioned, 25, 20)
* Finally, we compute the characters' original shapes.
***********切割区域与原图文字区域取交集,得到文字在原始图上的区域,消除上面8联通闭合操作的膨胀区域
intersection (Partitioned, Region, Characters)
dev_display (ImageResult)
dev_set_colored (6)
dev_display (Characters)

知识点解析:

1、gen_rectangle2生成带角度的矩形结构元素

参数Length1文档解释为Half width,直译过来其实理解不太正确,这里应该是宽度中间位置的像素宽度,实际生成矩形的宽度是:2*Length1-1,为奇数,确保Length1位置在宽度的正中间,示例中输入3的宽度是:2*3-1=5

参数Length2的理解同上,只是方向为宽度方向。

效果图:

gen_rectangle2 (Rectangle, 10, 10, rad(45), 4, 0)

                            

  

 gen_rectangle2 (Rectangle, 10, 10, rad(45), 0, 4)

 gen_rectangle2 (Rectangle, 10, 10, rad(45), 4, 4)

2、partition_dynamic:将输入区域水平划分为具有近似距离宽度的区域

gen_rectangle1 (Rc1, 0, 0, 100, 100) 
partition_dynamic (Rc1, Prc, 10, 10) 

宽度最大偏移:10*10*0.01=1

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Halcon中的图像增强算子mult_image是用于对图像进行增强处理的一种方法。该算子可以根据亮度、对比度、颜色平衡等参数,改善图像的质量和细节。 mult_image算子的基本原理是通过增加或减少图像像素值的方式,来调整图像的亮度和对比度。算子将原始图像的像素值乘以一个缩放因子,然后再加上一个偏移值,从而改变图像的亮度。此外,mult_image还可以通过调整R、G、B三个颜色通道的增益来平衡图像的色彩。这些参数可以根据实际需要进行调整,以达到理想的图像增强效果。 使用mult_image算子进行图像增强的步骤如下: 1. 选择待处理的图像作为输入。 2. 设置亮度缩放因子和偏移值,可以通过试验和调整这些参数来获得最佳结果。 3. 设置颜色增益,可以根据图像的具体情况进行调整。 4. 将输入图像和参数传入mult_image算子中。 5. 根据算子的输出结果,可观察到图像亮度和对比度的变化,以及颜色平衡的调整效果。 总之,通过Halcon的mult_image算子,我们可以对图像进行灵活的增强处理,以改善图像的质量和细节。这个算子提供了多个参数选项,可以根据具体需求进行调整,并且具有较高的灵活性和效果。 ### 回答2: Halcon是一种用于机器视觉的图像处理软件,拥有丰富的图像增强算子。其中,mult_image是一种常用的图像增强算子。 mult_image算子的作用是通过对输入图像中的每个像素进行乘法操作,改变图像的亮度和对比度,从而增强图像的视觉效果。该算子是通过将每个像素的灰度值与一个乘法因子相乘来实现的。 使用mult_image算子可以实现多种图像增强效果,例如增强图像的对比度、改变图像的亮度和色彩饱和度等。通过调整乘法因子的值,可以控制图像增强的程度和效果。 对于亮度增强,可以选择乘法因子大于1的值,使得图像的亮度增加。而对于亮度减弱,可以选择乘法因子小于1的值,使得图像的亮度降低。 对于对比度增强,可以选择乘法因子大于1的值,使得图像的灰度值分布更加分散。而对于对比度减弱,可以选择乘法因子小于1的值,使得图像的灰度值分布更加集中。 总之,mult_image算子是Halcon中一种常用的图像增强算子,通过对输入图像中的每个像素进行乘法操作,改变图像的亮度和对比度,从而增强图像的视觉效果。使用该算子可以实现多种图像增强效果,通过调整乘法因子的值来控制增强的程度和效果。 ### 回答3: halcon图像增强算子mult_image是一种用于增强图像质量的功能强大的算子。该算子可以通过合并图像的不同频率成分来提高图像的清晰度和对比度。 mult_image算子基于频域滤波的原理工作。它采用了小波变换或傅里叶变换来分解图像,并对不同频率的分量进行增强处理。通过调整算子参数,可以在增强图像的细节同时还保持图像的平滑度。 mult_image算子的主要参数包括分解层数、增强系数和滤波参数。分解层数决定了图像分解的细节层数,增强系数用于控制增强强度,滤波参数用于指定滤波器类型和滤波器尺寸。 使用mult_image算子可以有效地减少图像中的噪声,并增强图像的边缘信息。在工业检测和机器视觉等领域中,mult_image算子可以帮助检测和分析图像中的细微特征,从而提高图像处理的准确性和可靠性。 总的来说,halcon图像增强算子mult_image是一种功能强大的算子,可以通过合并不同频率的图像成分来增强图像质量。它在工业检测和机器视觉等领域有着广泛的应用,可以提高图像处理的效果和准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值