MATLAB图像处理实例.docx

上传人:b****6 文档编号:8229548 上传时间:2023-01-30 格式:DOCX 页数:10 大小:347.03KB
下载 相关 举报
MATLAB图像处理实例.docx_第1页
第1页 / 共10页
MATLAB图像处理实例.docx_第2页
第2页 / 共10页
MATLAB图像处理实例.docx_第3页
第3页 / 共10页
MATLAB图像处理实例.docx_第4页
第4页 / 共10页
MATLAB图像处理实例.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

MATLAB图像处理实例.docx

《MATLAB图像处理实例.docx》由会员分享,可在线阅读,更多相关《MATLAB图像处理实例.docx(10页珍藏版)》请在冰豆网上搜索。

MATLAB图像处理实例.docx

MATLAB图像处理实例

Matlab图像处理基本操作

文/天神

 

一、图像基本操作

1.读取图像并显示:

>>clear;closeall        %清空Matlab工作平台所有变量(准备工作)

>>I=imread('pout.tif'); %该图像是Matlab图形工具箱中自带的图像(\toolbox\images\imdemos)

>>imshow(I)

2.检查内存(数组)中的图像:

>>whos

Name     Size                   Bytes  Class

 I      291x240                  69840 uint8array

Grandtotalis69840elementsusing69840bytes

表示该图像采用8位存储方式并占用了69840B的存储空间。

3.实现图像直方图均衡化:

>>figure,imhist(I)   %在新图中显示图像I的直方图

>>I2=histeq(I); %均衡化以后的图像存在I2数组中(图像灰度值扩展到整个灰度范围,对比度提高)

>>figure,imshow(I2) %显示均衡化后的图像

>>figure,imhist(I2)  %显示均衡后的灰度值分布情况

8位图像取值范围:

[0,255],16位图像取值范围:

[0,655351],双精度图像取值范围:

[0,1]

 

4.保存图像:

>>imwrite(I2,'pout2.png');   %将图像由原先的tif格式另存为png格式

 

5.检查新生成文件的信息:

>>imfinfo('pout2.png')    %观察保存图像的文件信息

ans=

                 Filename:

'pout2.png'       %文件名

              FileModDate:

'11-Apr-200921:

55:

35'  %文件修改日期

                 FileSize:

36938      %文件大小

                   Format:

'png'       % 文件格式

            FormatVersion:

[]         % 格式

                    Width:

240       %文件宽度

                   Height:

291       %文件高度

                 BitDepth:

8         %文件位深度

                ColorType:

'grayscale' %颜色类型

                      ……

二、图像处理Matlab的应用:

实例:

消除rice.png图像中亮度不一致的背景,并使用阈值将修改后的图像转换为二值图像,使用成员标记返回图像中对象的个数以及统计特性。

按照如下步骤进行:

1.读取和显示图像

>>clear;closeall

>>I=imread('rice.png');

>>imshow(I)

 

2.估计图像背景:

图像中心位置背景亮度强于其他部分亮度,用imopen函数和一个半径为15的圆盘结构元素对输入的图像I进行形态学开操作,去掉那些不完全包括在圆盘中的对象,从而实现对背景亮度的估计。

>>clear;closeall

>>I=imread('rice.png');

>>imshow(I)

>>background=imopen(I,strel('disk',15));

>>imshow(background)

>>figure,surf(double(background(1:

8:

end,1:

8:

end))),zlim([0,255]);

>>set(gca,'ydir','reverse');

显示了背景图(左)和背景表面图(右)

 

3.从原始图像中减去背景图像(原始图像I减去背景图像得到背景较为一致的图像):

>>I2=imsubtract(I,background);

>>figure,imshow(I2)

 

4.调节图像的对比度(图像较暗,可用imadjust函数命令来调节图像的对比度)

>>I3=imadjust(I2,stretchlim(I2),[01]);

>>figure,imshow(I3);

 

5.使用阈值操作将图像转换为二进制(二值)图像(bw),调用whos命令查看图像的存储信息.

>>level=graythresh(I3);  %图像灰度处理

>>bw=im2bw(I3,level);    %图像二值化处理

>>figure,imshow(bw)      %显示处理后的图片

>>whos

 Name            Size                   Bytes Class

 I             256x256                  65536 uint8array

 I2            256x256                  65536 uint8array

 I3            256x256                  65536 uint8array

 background    256x256                  65536 uint8array

 bw            256x256                  65536 logicalarray

 level           1x1                        8 doublearray

Grandtotalis327681elementsusing327688bytes

 

6.检查图像中对象个数(bwlabel函数表示了二值图像中的所有相关成分并返回在图像中找到的对象个数)

>>[labeled,numObjects]=bwlabel(bw,4);

>> numObjects  

numObjects=

  101

表示图像中的米粒对象个数是101.

 

7.检查标记矩阵:

(imcrop命令进行交互式操作,图像内拉出较小矩形并显示已标记的对象和部分背景内的像素)

>>grain=imcrop(labeled)

grain=

    0    0   42   42   42   42   42   42   42    0

    0    0   42   42   42   42   42   42   42   42

    0    0   42   42   42   42   42   42   42   42

    0    0   42   42   42   42   42   42   42   42

    0    0   42   42   42   42   42   42   42   42

    0    0   42   42   42   42   42   42   42   42

    0   42   42   42   42   42   42   42   42   42

    0   42   42   42   42   42   42   42   42   42

8.观察标记矩阵(用label2rgb将其显示为一副伪彩色的索引图像):

>>RGB_label=label2rgb(labeled,@spring,'c','shuffle');

>>imshow(RGB_label);

 

9.测量图像对象或区域的属性(Regionprops,返回一个结构数据)

>>graindata=regionprops(labeled,'basic')

graindata=

101x1structarraywithfields:

   Area

   Centroid

   BoundingBox

>>graindata(40).Area  %显示矩阵中第40个元素的属性

ans=

  197

>>graindata(40).BoundingBox,graindata(40).Centroid   %寻找最近的边缘和中心点

ans=

  82.5000  59.5000  24.0000  20.0000

ans=

  95.4213  70.4924

>>allgrains=[graindata.Area];    %创建一个新的向量allgrains,其包含每个米粒的范围

>>whosallgrains

 Name           Size                   Bytes Class

 allgrains      1x101                    808 doublearray

Grandtotalis101elementsusing808bytes

>>allgrains(51)    %相当于整个矩阵的索引为51的属性是多少,可见与原来得到的结果相同

ans=

  140

>>max(allgrains)   %获取最大的米粒大小

ans=

  404

>>biggrain=find(allgrains==404)   %使用find命令返回这个最大尺寸米粒的标记号

biggrain=

   59

>>mean(allgrains)  %获取米粒的平均大小

ans=

 175.0396

 

9.绘制包含30个柱的直方图来说明米粒大小的分布情况

>>hist(allgrains,30)

     (米粒大小分布柱状图)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1