Matlab 查找并绘制每列中最小像素强度的位置
我有一个灰度图像。我想逐列扫描,找到每列中最暗像素的位置,获得x、y位置并在其上绘制一个标记。prog的输出应该是一个在每列最暗像素上有标记的图像 我的尝试完全没有结果。请帮帮我Matlab 查找并绘制每列中最小像素强度的位置,matlab,plot,pixel,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);
[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
使用第二个输出参数min:
使用第二个输出参数min:
从上述@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' );
从上述@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' );
你好我试过这个程序。但是我在一个直线左图像上得到了几个打印点,而不是一个水平线右图像,我用画图来显示所需的输出@user2805487-我的错:我把x-y和row-column的参数混在一起了。我编辑了我的答案,请试一试。我试过这个程序。但是我在一个直线左图像上得到了几个打印点,而不是一个水平线右图像,我用画图来显示所需的输出@user2805487-我的错:我把x-y和row-column的参数混在一起了。我编辑了我的答案,请试一试。