Halcon 第二章『图像滤波』◆第5节:texture_laws算子(纹理过滤器)的计算原理

本文详细介绍了Halcon中texture_laws算子的工作原理及应用。该算子通过特定的滤波器对图像进行纹理分析,能有效增强或抑制特定纹理特征。文中还提供了实例演示了如何设置滤波类型、偏移量等参数。

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

       算子

texture_laws — Filter an image using a Laws texture filter.

        格式

texture_laws(Image : ImageTexture : FilterTypes, Shift, FilterSize : )

        纹理是图像表面的一种灰度变化。有的纹理很规则,会以局部小区域为单元重复出现,而现有的纹理则呈现出随机性。对于格则的纹理,可以很容易地从中分辨出重复的区域,这些局部的、重复的部分被称为纹理单元。

        Halcon中的纹理滤波器的原理是,使用一个特殊的滤波器作为纹理算子,在图像上进行滤波操作,以增强或者抑制特定的纹理图像。经过纹理滤波器处理后的图像会被分割成若干个有相同图像的纹理单元。

        texture_laws 算子用于对纹理进行滤波,它根据参数设定的规则,对图像进行纹理变换。其参数如下:

        Image :输入图像Image 。

        ImageTexture:输出纹理。

        FilterTypes:为滤波的类型。这里的参数由两个字母组成,两个字母都取自7种滤波器类型的首字母。滤波器的类型有7中:level、edge、spot、wave、ripple、undulation、oscillation。第一个字母表示行方向上的滤波类型,第2个字母表示列方向上的滤波类型。即: 'll', 'le', 'ls', 'lw', 'lr', 'lu', 'lo', 'el', 'ee', 'es', 'ew', 'er', 'eu', 'eo', 'sl', 'se', 'ss', 'sw', 'sr', 'su', 'so', 'wl', 'we', 'ws', 'ww', 'wr', 'wu', 'wo', 'rl', 're', 'rs', 'rw', 'rr', 'ru', 'ro', 'ul', 'ue', 'us', 'uw', 'ur', 'uu', 'uo', 'ol', 'oe', 'os', 'ow', 'or', 'ou', 'oo'。

        一般来说,可以选择滤波向量中的 "l", "e", "s", "r", "w", "o"与滤波向量"l"组合来增强图像的低频部分,或者与滤波向量"o"组合来增强图像的高频部分。

        滤波器类型的第二个字母"l", "e", "s", "r", "w", "o"依次检测图像低频部分到高频部分。例如,滤波器"le"检测图像 中相对低频的部分,而滤波器"ls"检测图像中相对高频的部分。

        Shift:偏移量。当灰度值大于255时,可以降低灰度值。该参数用于调整结果图像的灰度,默认为2。范围: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9。计算方式:Gray=Gray/(Shift),要根据滤波器选择合适的灰度值转换。

         FilterSize:为滤波器的卷积核尺寸,默认为5,可选范围:3、5、7。

   FilterSize:滤波器尺寸

        所以卷积核尺寸为3×3的时候,只有'll','le','ls','el','ee','es','sl','se','ss'这9种组合。

        卷积核尺寸为5×5的时候,只有'll', 'le', 'ls', 'lw', 'lr', 'el', 'ee', 'es', 'ew', 'er', 'sl', 'se', 'ss', 'sw', 'sr',  'wl', 'we', 'ws', 'ww', 'wr', 'rl', 're', 'rs', 'rw', 'rr'这25种组合。

        卷积核尺寸为7×7的时候,有'll', 'le', 'ls', 'lw', 'lr', 'lu', 'lo', 'el', 'ee', 'es', 'ew', 'er', 'eu', 'eo', 'sl', 'se', 'ss', 'sw', 'sr', 'su', 'so', 'wl', 'we', 'ws', 'ww', 'wr', 'wu', 'wo', 'rl', 're', 'rs', 'rw', 'rr', 'ru', 'ro', 'ul', 'ue', 'us', 'uw', 'ur', 'uu', 'uo', 'ol', 'oe', 'os', 'ow', 'or', 'ou', 'oo'这49种组合。

        卷积核的矩阵如何计算:例如5×5的'ls'

        FilterTypes滤波器

        用于滤波的是一个滤波器小矩阵(也叫卷积核),滤波器小矩阵一般是个方阵,也就是 行数 和 列数 相同。进行滤波就是对于大矩阵中的每个像素,计算它周围像素和滤波器矩阵对应位置元素的乘积,然后把结果相加到一起,最终得到的值就作为该像素的新值,这样就完成了一次滤波。

        对图像大矩阵和滤波小矩阵对应位置元素相乘再求和的操作就叫卷积(Convolution)或协相关(Correlation).

       

        ImageTexture输出纹理图像中的值是如何得到的?

        以Halcon中texture_laws.hdev例子为例:

*只取原例子中的两段
read_image (Image, 'forest_road')
texture_laws (Image, Snowcity, 'ss', 0, 5)

        第一幅为forest_road最上角5×5的像素点,第二幅为输出的纹理图像Snowcity的左上角5×5的像素点,其两幅图的灰度值如下:

173166173179178
173172177170174
168170176174178
167161160171176
169160149159171
3218224824
22123091
724591224
282739281
124101102841

其中第二个表格中黄色位置的值的计算方式为:

173*1166*0173*-2179*0178*1
173*0172*0177*0170*0174*0
168*-2170*0176*4174*0178*-2
167*0161*0160*0171*0176*0
169*1160*0149*-2159*0171*1

其结果如下: 

1730-3460178
00000
-33607040-356
00000
1690-2980171

 最后将上面方框中的所有值求和:=59

参考文献:《Halcon机器视觉算法原理与编程实战》杨青Halcon算子实现——Texture_Lawshttps://blog.csdn.net/laboirousbee/article/details/106802233halcon的纹理分析texture_lawshttp://www.skcircle.com/?id=1453

彻底理解数字图像处理中的卷积-以SOBEL算子为例https://www.freesion.com/article/2116155481/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值