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

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

一、前言
说明如何根据纹理识别和分割区域。
二、读取图像
读取并显示一个挎包上的纹理图案的灰度图像。
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

目录
相关文章
|
4月前
|
算法
【图像】图像增强-降噪锐化
【图像】图像增强-降噪锐化
40 1
|
6月前
|
算法 Python
扭曲图像 鼻子拉伸
【6月更文挑战第28天】
33 0
|
7月前
|
算法 计算机视觉
缩放图像
【5月更文挑战第12天】缩放图像。
47 5
|
7月前
|
机器学习/深度学习 编解码 算法
SwinFIR:用快速傅里叶卷积重建SwinIR和改进的图像超分辨率训练
SwinFIR:用快速傅里叶卷积重建SwinIR和改进的图像超分辨率训练
225 1
|
7月前
|
机器学习/深度学习 编解码 测试技术
图像超分:真实感图像超分辨率的局部判别学习方法
图像超分:真实感图像超分辨率的局部判别学习方法
102 0
|
7月前
|
计算机视觉
纹理特征
纹理特征
100 1
|
机器学习/深度学习 算法 自动驾驶
基于图像特征检测——使用相位拉伸变换(Matlab代码实现)
基于图像特征检测——使用相位拉伸变换(Matlab代码实现)
127 0
计算一幅图像的信噪比
计算一幅图像的信噪比
876 0
|
资源调度 算法 API
OpenCV_06 图像平滑:图像噪声+图像平滑+滤波
由于图像采集、处理、传输等过程不可避免的会受到噪声的污染,妨碍人们对图像理解及分析处理。常见的图像噪声有高斯噪声、椒盐噪声等。
142 0