使用纹理滤波器对图像进行纹理分割

简介: 说明如何根据纹理识别和分割区域。

一、前言
说明如何根据纹理识别和分割区域。
二、读取图像
读取并显示一个挎包上的纹理图案的灰度图像。
1.png
三、创建纹理图像
使用 entropyfilt 创建纹理图像。函数 entropyfilt 返回一个数组,其中每个输出像素包含输入图像 I 中对应像素周围 9×9 邻域的熵值。熵是随机性的统计度量。
还可以使用 stdfilt 和 rangefilt 来获得类似的分割结果。为了与局部熵的纹理图像进行比较,创建分别显示局部标准差和局部范围的纹理图像 S 和 R。
使用 rescale 重新缩放纹理图像 E 和 S,使像素值在数据类型为 double 的图像的预期范围 [0, 1] 内。
以蒙太奇方式显示三个纹理图像。
2.png
四、为底部纹理创建掩膜
此示例继续处理熵纹理图像 Eim。您可以对其他两种类型的具有其他形态学函数的纹理图像重复类似的过程,以获得类似的分割结果。
对重新缩放后的图像 Eim 设置阈值以分割纹理。选择 0.8 的阈值,因为它大致是纹理之间边界上像素的强度值。
3.png
二值图像 BW1 中的分割对象是白色。如果您比较 BW1 和 I,会注意到顶部纹理过度分割(多个白色对象),底部纹理几乎整体分割。使用 bwareaopen 删除顶部纹理中的对象。
4.png
使用 imclose 对边缘进行平滑处理,并使 BWao 中对象的任何开放孔洞闭合。指定 entropyfilt 使用的相同 9×9 邻域。
5.png
使用 imfill 填充 closeBWao 中对象的孔洞。底部纹理的掩膜并不完美,因为掩膜没有延伸到图像的底部。但是,您可以使用该掩膜来分割纹理。
6.png
五、使用掩膜分割纹理
将纹理分成两个不同图像。
7.png
六、显示分割结果
创建一个标签矩阵,其中标签 1 的掩膜是 false,标签 2 的掩膜是 true。在原始图像上叠加标签矩阵。
8.png
以青色显示两个纹理之间边界的轮廓。
9.png

目录
相关文章
|
算法 数据可视化
Halcon边缘检测和线条检测(1),文章含自适应/动态二值化等算子
Halcon边缘检测和线条检测(1),文章含自适应/动态二值化等算子
1738 0
|
7月前
|
计算机视觉
【图像处理】 Halcon 实现图像亚像素边缘检测
如何在Halcon软件中实现图像亚像素边缘检测,包括读取图片、图像阈值化、边界提取、区域扩张、亚像素边缘提取、轮廓拟合和彩色绘图等步骤,并提供了相应的Halcon代码实现和检测效果展示。
230 2
|
9月前
|
算法 Python
扭曲图像 鼻子拉伸
【6月更文挑战第28天】
48 0
|
10月前
|
算法 计算机视觉
缩放图像
【5月更文挑战第12天】缩放图像。
57 5
|
9月前
|
算法 C语言 计算机视觉
图像处理之图像快速插值放缩算法
图像处理之图像快速插值放缩算法
44 0
|
10月前
|
编解码 物联网 计算机视觉
【OpenCV】—图像金子塔与图片尺寸缩放
【OpenCV】—图像金子塔与图片尺寸缩放
|
10月前
|
计算机视觉
纹理特征
纹理特征
128 1
|
机器学习/深度学习 人工智能 算法
OpenCV-差分法实现绿叶识别(图像差分+颜色通道)
OpenCV-差分法实现绿叶识别(图像差分+颜色通道)
233 0
|
机器学习/深度学习 算法 自动驾驶
基于图像特征检测——使用相位拉伸变换(Matlab代码实现)
基于图像特征检测——使用相位拉伸变换(Matlab代码实现)
150 0
计算一幅图像的信噪比
计算一幅图像的信噪比
1010 0