2013-10-22 33 views
2

我有一個灰度圖像。我想逐列掃描以找出每列中最暗像素的位置,獲得(x,y)位置並在其上繪製標記。 prog的輸出應該是每列最暗像素上帶有標記的圖像。查找並繪製每列中最小像素強度的位置

我的嘗試完全沒有輸出。請幫幫我。

[row col] =size(i11); 
for j=1:col 
    for i=1:row 
     darkestPixelValue = min(i11(i,j));  
     [i,j]=find(i11==darkestPixelValue); 
     plot (i,j); 
    end 
end 

回答

4

使用min第二輸出參數:

>> [mn row] = min(i11, [], 1); 
>> figure; imshow(i11); hold on; scatter(1:size(i11,2), row, 40, 'xr'); 
+0

嗨。我已經嘗試過編。但是我在一條直線(左圖)上繪製了幾個繪製點,而不是水平線(右圖,我使用Paint來顯示期望的輸出)。 ![Image Link](http://s13.postimg.org/h4a5l7ioz/Untitled.jpg)。 – user2805487

+0

@ user2805487 - 我的壞:我混合了'scatter'的參數(與行列混淆的x-y)。我編輯了我的答案,請嘗試一下。 – Shai

+0

非常感謝你! :D:D – user2805487

0

一種不同的方法來標記暗和亮像素列方向,從上述(@shai和@ user2805487)的啓發:

[r c]=size(a); 
    pv=zeros(r,1); 
    dark=zeros(c,1); 
    for i=1:c 
     for j=1:r 
      pv(j)=a(j,i); 
     end 
    [ind dp] =min(pv); 
    dark(i)=ind; 
    [ind dp] =max(pv); 
    lyt(i)=ind; 
    end 

    figure; imshow(a); hold on; scatter(1:c, dark, 40, 'xr'); 
    figure; imshow(a); hold on; scatter(1:c, lyt, 40, 'xg'); 
相關問題