找到并绘制每列中最小像素强度的位置

时间:2013-10-22 12:35:31

标签: matlab plot pixel

我有一张灰度图像。我想逐列扫描,找到每列中最暗像素的位置,获取(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

2 个答案:

答案 0 :(得分:4)

使用min的第二个输出参数:

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

答案 1 :(得分: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' );