打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
17.6 使用纹理滤波器分割图像(1) - 51CTO.COM

17.6 使用纹理滤波器分割图像(1)

http://book.51cto.com  2009-06-24 13:35  张强/王正林  电子工业出版社  我要评论()
  • 摘要:《精通MATLAB图像处理》第17章MATLAB图像分割实战,本章主要讲述了图像分割方面的7大实例,读者通过这些实例,能够熟练掌握MATLAB在图像分割方面的应用。本节为大家介绍使用纹理滤波器分割图像。
  • 标签:MATLAB  图像处理  精通MATLAB图像处理

17.6  使用纹理滤波器分割图像(1)

使用纹理滤波器分割图像的基本步骤如下:

读取图像;

创建纹理图像;

显示图像不同部分的纹理;

使用合适的滤波器进行分割。

下面通过一个例子来看一下如何使用纹理滤波器对图像进行分割。

例17-7   利用纹理滤波器进行图像分割。

使用纹理滤波器进行分割就是利用图像中不同区域的纹理来对图像的区域进行划分。纹理是指一个物体上的颜色模式或者指物体表面的光滑程度。纹理描述图像中的区域特征,试图直观地定量描述诸如光滑、质地等参数。在遥感、医学图像处理和自动化侦查中,纹理分割图像有着很多的应用。利用纹理可以用来检测图像的边界,从而对图像进行分割。

【本例要点】在本例中首先求取图像不同部分的纹理,然后使用entropyfilt、stdfilt、rangefilt三个不同的滤波函数对图像进行滤波。

本例的基本步骤如下:

读取图像。

代码如下:

  1. I = imread('bag.png');%读取图像  
  2. figure; imshow(I);%显示原图像 

在这个程序中,首先读取一幅图像bag,这个图像的顶部和底部的纹理有明显的差异,如图17-29所示。

创建纹理图像。

代码如下:

  1. E = entropyfilt(I);%创建纹理图像  
  2. Eim = mat2gray(E);%转化为灰度图像  
  3. figure; subplot(121)  
  4. imshow(Eim);%显示灰度图像  
  5. BW1 = im2bw(Eim, .8);%转化为二值图像  
  6. subplot(122); imshow(BW1);%显示二值图像 

使用函数entropyfilt创建一幅纹理图像,这个函数返回的图像与输入图像大小相同,每个像素值是输入图像相应像素值邻域的熵值。

使用函数mat2gray将矩阵转化为灰度图像,如图17-30左边图像所示。使用纹理边界处的值0.8作为阈值将灰度图像转化为二值图像,如图17-30右边图像所示。

 
图17-29  原图像

 
图17-30  纹理图像的灰度图像显示和二值图像显示

分别显示图像的底部纹理和顶部纹理。

代码如下:

  1. BWao = bwareaopen(BW1,2000);%提取底部纹理  
  2. figure; subplot(121)  
  3. imshow(BWao);%显示底部纹理图像  
  4. nhood = true(9);  
  5. closeBWao = imclose(BWao,nhood);%形态学关操作  
  6. subplot(122); imshow(closeBWao)%显示边缘光滑后的图像  
  7. roughMask = imfill(closeBWao,'holes');%填充操作  
  8. figure; subplot(121)  
  9. imshow(roughMask);%显示填充后的图像  
  10. I2 = I;  
  11. I2(roughMask) = 0;%底部设置为黑色  
  12. subplot(122); imshow(I2);%突出显示图像的顶部 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MATLAB中图像处理的函数
干货 | 用Python做图像处理:图像导数实战
Matlab常用图像操作
MATLAB GUI平台
matlab中直方图规定化(直方图匹配)的单映射 – MATLAB中文论坛
分水岭分割算法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服