2014-03-24 46 views
0

對不起,如果我的問題沒有完全理解......我會盡力澄清它通過描述我的問題...如何將matlab中的圖轉換爲對象?

我有對象(二進制圖像)幾乎曲折和長。我想從最高點到最低點繪製一條線,然後填充我的曲線和直線之間的封閉區域來測量其面積,或者找到曲線中每個點與線條之間的距離以達到相同目的...我知道它很容易使用的情節如下繪製一條線:

imshow(fnnShrink) 
hold on 
plot([TLx , BRx ],[TLy ,BRy],'-', 'MarkerFaceColor' , 'b') 
hold off 

這給我好顏色的線(在MATLAB的數字),但問題我couldnot此線路上執行任何measurment(其只顯示)。即使嘗試處理器作爲朋友在這裏告訴我,它仍然給我只有線的長度(沒有幫助)。 一個解決方案,我試過是利用直線方程,使我的自我線通過設置像素1和創建圖像的新對象行如下:

m = (TLy - BRy)/(TLx - BRx); % Always Same 
    for i = TLx : 1 : BRx 
     fnnShrink(round(m * (i - TLx) + TLy) , round(i)) = 1; 
     fTest(round(m * (i - TLx) + TLy) , round(i)) = 1; 
    end 

如果距離在某些圖片此解決方案的工作( (在X軸上)相對較大,問題是當距離很小時(斜率爲負)我只得到離散線而不是連續線(上下點之間的一組點) )...那我的問題..請幫助我,如果你可以...

+1

你能張貼你到目前爲止的代碼,你嘗試的功能「imline」? http://www.mathworks.com/help/images/ref/imline.html –

+0

尊敬的用戶,我認爲imline的工作原理和陰謀一樣...... – user3455597

+0

不,「imline」可以讓你在圖像上繪製一條線並返回該行的位置。但是現在你編輯了你的問題,看起來並不像你需要的那樣。 –

回答

-1

其實,imshow,因爲matlab中的所有繪圖函數,不僅顯示情節。它還返回一個句柄(相當於一個指針的matlab)到創建的對象。所以,你只需要

new_object = imshow(...) 

,而不是僅僅imshow

+0

我不明白這與這個問題有什麼關係。 –

+0

您看不到「圖像是否是matlab中的一個對象」與「如何將圖像轉換爲對象」相關?真??? –

+0

親愛的blue_note,我已經嘗試過你說的,但它只是給我在我的情況下線的長度... – user3455597