2

私はグレースケールの画像を持っています。列ごとにスキャンして、各列で最も暗いピクセルの位置を見つけ、(x,y) の位置を取得して、その上にマークをプロットしたいと思います。プログラムの出力は、各列の最も暗いピクセルにマークが付いた画像になるはずです。

私の試みはまったく出力されませんでした。私を助けてください。

[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

2 に答える 2

4

の 2 番目の出力引数を使用しますmin

>> [mn row] = min( i11, [], 1 );
>> figure; imshow( i11 ); hold on; scatter( 1:size(i11,2), row, 40, 'xr' );
于 2013-10-22T12:38:41.593 に答える
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' );
于 2014-08-28T05:00:12.753 に答える