|
<hr/ data-first-child>MATLAB图像处理基本操作
图像处理的基本操作
clear%清除所有的工作平台变量closeall%关闭已打开的图形窗口I=imread(&#39;pout.tif&#39;);%读取图像pout.tif(该图像是图像处理工具箱自带的图像),%存储在一个名为I的数组中imshow(I)%显示图像Iwhos%查看图像数据I是如何存储在内存中的。figure%生成一个新的图形窗口,避免后面的图像覆盖前面图像的显示imhist(I)%创建描述图像I灰度分布的直方图I2=histeq(I);%将图像的灰度值扩展到整个灰度范围,从而提高图像数组I的对比度。figure,imshow(I2)%显示修改过的图像I2figure,imhist(I2)%显示拓展后的灰度值的分布情况imwrite(I2,&#39;pout.png&#39;);%将图像I2以PNG图像文件格式保存到磁盘imfinfo(&#39;pout2.png&#39;)%观察保存的图像文件信息图像处理的高级应用
主要对一幅灰度图像rice.tif进行一些较为高级的操作为例说明整个过程。
clear%清除所有的工作平台变量closeall%关闭已打开的图形窗口I=imread(&#39;rice.png&#39;);%读取图像rice.png(该图像是图像处理工具箱自带的图像)imshow(I)%显示图像background=imopen(I,strel(&#39;disk&#39;,15));%对图像I进行形态学开操作,删除那些不完全包括%在半径为15的圆盘中的对象,实现对背景亮度的估计figure,imshow(background)figure,surf(double(background(1:8:end,1:8:end))),zlim([0255]);%以表面形式显示背景I2=imsubtract(I,background);%将背景图像background从原始图像I中减去figure,imshow(I2)I3=imadjust(I2,stretchlim(I2),[01]);%调节图像的对比度figure,imshow(I3);level=graythresh(I3);bw=im2bw(I3,level);figure,imshow(bw)[labeled,numObjects]=bwlabel(bw,4);%确定图像中的米粒个数numObjects101grain=imcrop(labeled)%选择并显示已标记的对象和部分背景内的像素RGB_label=label2rgb(labeled,@spring,&#39;C&#39;,&#39;shuffle&#39;);%将标记矩阵显示为一副伪彩色的索引图像,在伪彩色的彩色图像中,%标记矩阵中的每一个对象都将被映射为相关调色板中的不同颜色imshow(RGB_label);8.计算图像中对象的统计属性
graindata=regionprops(labeled,&#39;basic&#39;)%测量图像或者区域的属性,并返回一个结构数组。当用于一个标记图像时,%它还为每一个标记分量创建一个结构元素。graindata(51).Area%显示第51个元素的属性graindata(51).BoundingBox,graindata(51).Centroid%寻找最近的边缘和中心allgrains=[graindata.Area];%创建一个新的向量allgrains,其包含每个米粒的范围allgrains(51)%查看第51个元素的范围max(allgrains)%获取最大的米粒大小biggrain=find(allgrains==404)%返回最大米粒的标记号mean(allgrains)%获取米粒的平均大小hist(allgrains,20)%绘制包含20个柱的直方图“欢迎关注:【未来现相】微信公众号!!!” |
|