您现在的位置是:首页 > 互联网 > 正文

Matlab图像如何处理(Matlab图像处理的基本操作)

发布时间:2022-07-11 03:10:13编辑:来源:

大家好,小太来为大家解答以上问题。Matlab图像如何处理,Matlab图像处理的基本操作这个很多人还不知道,现在让我们一起来看看吧!

Matlab虽然是一个数学处理软件,但是这个软件特别强大,它的强大之处在于对图像的处理能力。这个函数对于很多新手学习Matlab来说是一个惊喜。哪些是他们不知道的,需要学习的,下面小编就给大家介绍一下Matlab的图像处理方法。我们去看看吧!

数学软件MatlabR2016a64位完整特别版(附破解文件密钥安装教程)

类型:编程其他大小:7.6GB语言:简体中文时间:2016年11月23日查看详情

一、图像基本操作

1.读取图像并显示:

》明确;关闭%清除Matlab工作台的所有变量(准备工作)

》I=imread('pout.TIF');%此图像是Matlab图形工具箱附带的图像(\toolbox\images\imdemos)。

》imshow(一)

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

》whos

名称大小字节类

I291x24069840uint8阵列

总计为69840个元素,使用69840个字节

意味着图像以8位模式存储,占用69840B的存储空间。

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

图,imhist(I)%显示新图片中图像I的直方图。

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

图中,imshow(I2)%显示了均衡后的图像。

图,imhist(I2)%显示了均衡后的灰度值分布。

8位图像值范围:[0,255],16位图像值范围:[0,655,351],双精度图像值范围:[0,1]

4.保存图像:

》imwrite(I2,'pout2.png');%将图像从原来的tif格式保存为png格式

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

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

ans=

文件名:'pout2.png'%文件名

FileDate:'2009年4月11日21:55:35'%文件修改日期

文件大小:36938%文件大小

格式:“png”文件格式

格式:[]%格式

宽度:文件宽度的240%

高度:文件高度的291%

位深度:8%文件位深度

颜色类型:“灰度”%颜色类型

……

二、Matlab图像处理的应用:

示例:消除rice.png图像中亮度不一致的背景,利用阈值将修改后的图像转化为二值图像,利用成员标记返回图像中物体的数量和统计特征。按照以下步骤进行:

1.读取和显示图像。

》明确;全部关闭

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

》imshow(一)

2.估计图像的背景:

图像中心的背景亮度比其他部分强。使用imopen函数和半径为15的圆盘结构元素对输入图像I进行形态学开运算,去除那些没有完全包含在圆盘中的物体,从而估计背景亮度。

》明确;全部关闭

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

》imshow(一)

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

》imshow(背景)

》图,surf(double(后台(1:8:end,1:8:end))、zlim([0,255]);

》集(gca,'ydir','反向');

显示了背景图像(

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

NameSizeBytesClass

I256x25665536uint8array

I2256x25665536uint8array

I3256x25665536uint8array

background256x25665536uint8array

bw256x25665536logicalarray

level1x18doublearray

Grandtotalis327681elementsusing327688bytes

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

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

》》numObjects

numObjects=

101

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

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

》》grain=imcrop(labeled)

grain=

00424242424242420

004242424242424242

004242424242424242

004242424242424242

004242424242424242

004242424242424242

0424242424242424242

0424242424242424242

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.500059.500024.000020.0000

ans=

95.421370.4924

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

》》whosallgrains

NameSizeBytesClass

allgrains1x101808doublearray

Grandtotalis101elementsusing808bytes

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

ans=

140

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

ans=

404

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

biggrain=

59

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

ans=

175.0396

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

》》hist(allgrains,30)

米粒大小分布柱状图

本文到此结束,希望对大家有所帮助。

标签:

上一篇
下一篇

最新文章