資源簡介
Matlab邊緣檢測和區域生長圖像分割算法代碼,適合于圖像邊緣檢測。
代碼片段和文件信息
clc;
clear?all;
k=input(‘Enter?the?file?name:‘‘s‘);?%?輸入圖像
im=imread(k);???????????????????????%讀取圖像
im=im2double(im);???????????????????%將圖像轉化為double型?不是的,看我們的需要,不過大多數都是?因為double類型,處理基本不受限制,其他類型有時受限制?
im1=rgb2gray(im);???????????????????%將圖像轉換為灰度圖像
im1=medfilt2(im1[3?3]);????????????%中值濾波???這個窗口有3*3的,5*5的,7*7的等等?,選擇哪個都可以,關鍵看我們圖像的要求,當然窗口越小,效果會越好?均值濾波使得圖像模糊
BW?=?edge(im1‘Sobel‘);?????????????%找到邊緣?cannyprewittlog都試過了,效果沒有sobel好
[imximy]=size(BW);?????????????????%提取BW圖像的大小??imx代表行數,imy代表列數
msk=[0?0?0?0?0;
?????0?1?1?1?0;
?????0?1?1?1?0;
?????0?1?1?1?0;
?????0?0?0?0?0;];??????????????????%隨便刪,隨便加行,減行都可以?實驗了很多種,最后得到這個是最好的。
B=conv2(double(BW)double(msk));???%平滑圖像?平滑圖像能幫助我們更好的標注?圖像實際由于灰度不同,會呈現許多區域?標注就是對每個區域進行標注
L?=?bwlabel(B8);??????????????????%標注連通對象?選擇8連通進行標注?用8連通函數進行標
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1671??2011-03-03?15:16??Matlab邊緣檢測和區域生長圖像分割算法代碼\deer.m
?????文件????????312??2011-03-03?15:16??Matlab邊緣檢測和區域生長圖像分割算法代碼\regiongrow.m
?????目錄??????????0??2011-04-11?20:33??Matlab邊緣檢測和區域生長圖像分割算法代碼
-----------?---------??----------?-----??----
?????????????????1983????????????????????3
評論
共有 條評論