1
Laws纹理滤波
纹理实际上一种视觉特征,反映了图像上某种灰度变化的分布,体现出像素灰度与周围空间的一种关系,例如布匹纹理、木制家具纹理等,如下图所示布匹上纹理。
LAWS纹理滤波以一种统计能量的方式检测纹理,能量的度量一般由以下三个向量得到:
这三个向量与其自身以及互相卷积后,可形成以下5个向量:
而这5个向量之间,相互乘积,可以生成检测水平、垂直、高频点、V形状等特征纹理的模板,下图为生成检测垂直边缘的LAWS模板(LS)。
如果对纹理的其他提取方法感兴趣,可按如下图示方法,一一探询。
2
相关算子
texture_laws( Image : ImageTexture : FilterTypes, Shift, FilterSize : )
名字:LAWS纹理滤波
描述:利用LAWS纹理滤波器对图像进行纹理变换。
参数:
Image :输入图像
ImageTexture :输出变换后的纹理图像
FilterTypes:指定希望滤波器类型
Shift:灰度动态偏移
FilterSize :滤波器尺寸
关于滤波器类型有以下如此多,此次使用检测垂直方向纹理5*5的‘ls’滤波器。
3
算法思路
整体思路还是沿用第一篇思路的框架,着重理解第一篇算法思路。
1. 使用textrue_laws进行纹理滤波变换 2. 再用gray_range_rect进行灰度变换 3. 利用line_guass提取线条
4
实例分析
使用LAWS纹理模板--‘ls’,检测垂直纹理,效果如下
整体代码如下:
dev_update_off ()
read_image (Image1030179715f15e264af3b, 'C:/Users/SWD-AR02/Desktop/10_3017_9715f15e264af3b.png')
*LAWS纹理滤波
texture_laws (Image1030179715f15e264af3b, ImageTexture, 'ls', 2, 5)
*灰度变换
gray_range_rect (ImageTexture, ImageResult1, 6, 6)
*高斯线条提取
MaxLineWidth := 10
Contrast := 40
calculate_lines_gauss_parameters (MaxLineWidth, [Contrast,0], Sigma, Low, High)
lines_gauss (ImageResult1, Lines, Sigma, Low, High, 'light', 'true', 'parabolic', 'true')
*剔除干扰线
select_contours_xld (Lines, SelectedContours, 'contour_length', 50, 250, -0.5, 0.5)
union_adjacent_contours_xld (SelectedContours, UnionContours, 10, 1, 'attr_keep')
*结果显示
gen_region_contour_xld (UnionContours, Region, 'margin')
dilation_rectangle1 (Region, RegionDilation, 11, 1)
dev_set_draw ('margin')
dev_display (Image1030179715f15e264af3b)
dev_display (RegionDilation)