2011-03-25 135 views
0

我已經在這個網站上看到了複雜的邊界追蹤代碼。matlab中的邊界追蹤

我是第一次使用matlab用戶,並帶有一個bwtraceboundary的小代碼。

這段代碼曾經追蹤過葉子圖像的輪廓(雖然沒有追蹤葉柄,這是一個較淺的陰影)......在我改變圖像大小之前。那麼我所有的圖像都是空白的。

我以爲我錯過了邊界的起點,並嘗試了不同的值計算行& col(coords。of start pt。),但都沒有工作。 你能幫我跟蹤它的莖葉嗎?

的代碼是:

I = imread('C:\...\images3.jpg'); 
imshow(I) 
BW = im2bw(I); 
imshow(BW) 
dim = size(BW) 
col = round(dim(2))-90; 
row = min(find(BW(:,col))) 
boundary = bwtraceboundary(BW,[row, col],'N'); 
imshow(I) 
hold off; 
plot(boundary(:,2),boundary(:,1),'b','LineWidth',1); 

假設圖像矩陣由輸入獲得「I」中的命令窗口,我將能夠選擇的起始角?怎麼樣?

+0

@Phonon:它來自圖像處理工具箱。 – AVB 2011-03-25 20:28:03

+0

Woops。不知道。 – Phonon 2011-03-25 20:29:47

回答

1

是的,你可能會錯過起點(或方向)。如果你這樣做

imshow(I) 
[x, y] = getpts 

你將能夠用鼠標指定起點。在Matlab中處理圖像時,請注意列與行之間的eternal mix-up

+0

這個警告應該是粘在論壇上的某個地方=) – Phonon 2011-03-25 20:29:00

+0

@Phonon:它是[corner cases](http://stackoverflow.com/questions/1710299/corner-cases-unexpected-and-unusual- matlab) – Jonas 2011-03-25 22:07:49

+0

潛在的混淆是爲什麼我總是寫''y,x] = getpts' – Jonas 2011-03-26 03:16:51