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

2 回答 2

4

使用的第二个输出参数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 回答