超全面!Matlab圖像處理基本操作 如何用matlab進行圖像處理


超全面!Matlab圖像處理基本操作 如何用matlab進行圖像處理

文章插圖
大家好,綜合小編來為大家講解下如何用matlab進行圖像處理,超全面!Matlab圖像處理基本操作這個很多人還不知道,現在讓我們一起來看看吧!
一、圖像的基本操作
(資料圖)
1.讀取圖像并顯示出來:
》明確;關閉所有%清除Matlab工作平臺的所有變量(準備工作)
》I=imread(' pout . TIF ');%此圖像是Matlab圖形工具箱(\toolbox\images\imdemos)附帶的圖像 。
》imshow(一)
2.檢查內存中的圖像(數組):
》whos
名稱大小字節類
I 291x240 69840 uint8陣列
總計為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,' pout 2 . png ');%將圖像從原始tif格式保存為png格式 。
5.檢查新生成文件的信息:
" IMF Info ('pout2.png')%觀察保存圖像的文件信息 。
ans=
文件名:' pout2.png'%文件名
filemoddate:' 2009年4月11日21: 55: 35'%文件修改日期
文件大?。?6938%文件大小
格式:“png”文件格式
格式版本:[]%格式
寬度:文件寬度的240%
高度:文件高度的291%
位深度:8%文件位深度
顏色類型:“灰度”%顏色類型
……
二、Matlab圖像處理的應用:
示例:剔除rice.png圖像中亮度不一致的背景,使用閾值將修改后的圖像轉換為二值圖像,使用成員標簽返回圖像中物體的數量和統計特征 。按照以下步驟進行:
1.閱讀和顯示圖像
》明確;全部關閉
》I=imread(' rice . png ');
》imshow(一)
【超全面!Matlab圖像處理基本操作 如何用matlab進行圖像處理】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,背景);
》圖,imshow(I2)
4.調整圖像的對比度(圖像較暗,可以使用imadjust函數的命令調整圖像的對比度) 。
》I3=imadjust(I2,stretchlim(I2),[0 1]);
》圖,imshow(I3);
5.使用threshold操作將圖像轉換為二進制圖像(bw),并調用whos命令查看圖像的存儲信息 。
》level=gray thresh(I3);%圖像灰度處理
》bw=im2bw(I3,水平);%圖像的二進制處理
圖,imshow(bw)%顯示處理后的圖片 。
》whos
名稱大小字節類
I 256x256 65536 uint8陣列
I2 256x256 65536 uint8陣列
I3 256x256 65536 uint8陣列
背景256x256 65536 uint8陣列
bw 256x256 65536邏輯陣列
1x1 8級雙陣列
總計為327681個元素 , 使用327688個字節
6.檢查圖像中的對象數量(bwlabel函數表示二進制圖像中的所有相關組件,并返回在圖像中找到的對象數量) 。
》[labeled,numObjects]=bwlabel(bw , 4);
》numObjects
numObjects=
101
圖像中大米對象的數量是101 。
7.檢查標記矩陣:(imcrop命令執行交互操作,在圖像中拉出一個較小的矩形,在背景中顯示被標記的對象和一些像素) 。
》grain=imcrop(已標注)
谷物=
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.觀察標記矩陣(顯示為標簽為2rgb的偽彩色索引圖像):
》RGB_label=label2rgb(標簽,@spring,' c '' shuffle ');
》imshow(RGB _ label);
9.測量圖像對象或區域的屬性(返回結構數據) 。
》graindata=http://www.baikeg.com/ng/regionprops(標簽為,'基本')
顆粒數據=
帶字段的101x1結構數組:
面積
圖心
邊界框
”graindata(40) 。Area%顯示矩陣中第40個元素的屬性 。
ans=
197
Graindata(40) 。BoundingBox , graindata(40) 。質心%找到最近的邊和中心點 。
ans=
82.5000 59.5000 24.0000 20.0000
ans=
95.4213 70.4924
》allgrains=[graindata 。area];%創建一個新的矢量allgrains,它包含每個米粒的范圍 。
》誰是全谷物
名稱大小字節類
全谷物1x101 808雙陣列
總計是使用808字節的101個元素
“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)
大米粒度分布直方圖
本文[高級偽原創標題]到此分享完畢,希望對大家有所幫助 。

    推薦閱讀