MATLAB图像函数以及应用(第六章)边界问题
1、bwboundaries ? ?二值圖像區域邊界追蹤、、
功能:在二值圖像中進行區域邊界的追蹤,采用區域跟蹤的算法,給出二值圖像中所有的外邊界和內邊界
用法:
[B L]=bwboundaries(bw,conn,option); ? B輸出為P *1de 元胞矩陣,P為目標和洞的個數,B的每個元寶元素均是Q*2de 矩陣,矩陣的每一行包含像素點的行列坐標。
L為表示矩陣,用于標示二值圖像中被劃分邊界的區域,包含目標和洞。
bw為二值圖像,conn為搜索的聯通方法 ?默認八聯通,option表示搜索的方包含‘holes(內外邊界) ?和 noholes(外邊界);
<span style="font-size:18px;"><span style="font-size:18px;">I=imread('rice.jpg'); Bw=im2bw(I,graythresh(I)); [B L]=bwboundaries(Bw,'noholes');%L表示劃分的區域 imshow(label2rgb(L,@jet,[0.5 0.5 0.5]); hold on for k=1:length(B) boundary=b{k}; plot(boundary(:,2),boundary(:,1),’w','LineWidth',2);</span></span>2、bwtraceboundary(bw,p,fstep,conn)函數
B=bwtraceboundary(bw,p,fstep,conn)
作用在二值圖像中進行目標的追蹤,采用基于曲線追蹤的算法,按指定的起始點和方向進行搜索,最后返回起始點。
bw表示二值圖像,p表示追蹤的起點,fstep表示方向,(N ? S ?E ?W ?)四大方向 ?conn表示按照幾連通區域來追蹤
4或者8連通區域。
I=imread('lena.jpg'); bw=im2bw(I,0.6); figure; imshow(bw); s=size(bw); col=round(s(2)/2)-90; row=find(bw(:,col),1); contour=bwtraceboundary(bw,[row col],'W',4); hold on; plot(contour(:,2),contour(:,1),'r','LineWidth',2);
3、edge函數 ?尋找灰度圖像的邊界
作用尋找灰度圖像的邊界
bw=edge(I); ?
例子:
I=imread('lena.jpg'); imshow(I); bw1=edge(I); figure; imshow(bw1); bw2=edge(I,'sobel'); figure; imshow(bw2); bw3=edge(I,'prewitt'); figure; imshow(bw3); bw4=edge(I,'roberts'); figure; imshow(bw4); bw5=edge(I,'log'); figure; imshow(bw5); bw6=edge(I,'zerocross'); figure; imshow(bw6); bw7=edge(I,'canny'); figure; imshow(bw7);
I=imread('lena.jpg'); imshow(I); bw=edge(I,'roberts');figure; imshow(bw); bw1=edge(I,'roberts',0.05); figure; imshow(bw1); bw2=edge(I,'roberts',0.3); figure; imshow(bw2); bw3=edge(I,'roberts',0.7); figure; imshow(bw3); 4、entropy ?計算灰度圖像的熵
E=entropy(I);
局部熵?
?J=entropyfilt(I) ? ?計算灰度圖像中的局部熵,J中的每一個像素為輸入圖像I中對應元素9*9鄰域的熵值
5、graycomatrix ?灰度共生矩陣
glcm=graycomatrix(I) ?從圖像I中建立灰度共生矩陣
stats=graycoprops(glcm,properties) 獲取灰度共生矩陣glcm中指定的屬性的狀態。
字符串properties表示屬性,取值可以為 ?contrast ?correlation energy ?homogeneity.
I=imread('lena.jpg'); glcm=graycomatrix(I); stats=graycoprops(I,{'contrast','homogeneity'})
6、J=rangefilt(I) ? ?計算圖像的局部范圍
J=rangefilt(I) ? 計算圖像I的局部范圍,返回矩陣J,輸出矩陣J和I具有相同的維數,j中每一個像素的值為輸入圖像I中對應元素3*3鄰域的范圍(最大-最小)
<span style="font-size:18px;">I=imread('lena.jpg'); J=rangefilt(I); imshow(J) </span> ?7、 <span style="font-size:18px;">I=imread('lena.jpg'); J=stdfilt(I); imshow(J) </span>stdfilt ? ?計算圖像 的局部標準差
J=stdfilt(I) ? 計算圖像的局部標準差,返回矩陣J ?計算圖像每個元素 ?3*3鄰域內的標準差
8、corr2 ? 計算兩個矩陣的互相關系數
r=corr2(A,B) ?計算矩陣A B 的互相關系數
公式
例子:
A=[1 3 4;6 3 7;3 5 7]; B=[2 6 8;3 2 1;3 8 9]; r=corr2(A,B)
9、imcontour ? 創建圖像的等高線
創建圖像的等高線 ? ?跟地圖的等高線類似 ? ?相同像素的用線表示出來
?imcontour(I) ?繪制圖像I的等高線,自動的進行坐標的設置,使輸出圖像的方向與外觀與原始圖像吻合。
imcontour(I,n) ?繪制圖像I的n個等高線,自動的進行坐標的設置,使輸出圖像的方向與外觀與原始圖像吻合。
I=imread('lena.jpg'); imshow(I); figure; imcontour(I,3)? 10、imhist ? 創建圖像的直方圖
顯示圖像的直方圖,表示圖像中每一個灰度級與灰度級出現的頻率對應關系,就是計算某個灰度級像素的個數,
imhist(I) ? 默認灰度級是256
imhist(I,n) ? n表示灰度級
[ counts ?x]=imhist(I,200) ?
表示直方圖像素的個數,以及灰度等級向量
總結
以上是生活随笔為你收集整理的MATLAB图像函数以及应用(第六章)边界问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 图像函数以及运用(第十章)
- 下一篇: 金字塔式梯度方向直方图(PHOG)