我有一个图像(5x5)像素,其中有3个值,值为0,128和255。
我想检查索引(1,1)到(1,5)的像素。
如果有像素值0(黑色),则索引(1,1)到(1,5)的像素变为128(灰色),如果没有,则像素变为255(白色) )。
我想再次执行这些步骤,检查索引(2,1)到(2,5),(3,1)到(3,5),直到底部。
从上述问题中,我得到了这样的解决方案:
mask = repmat(any(I == 0,2),5,1);
我(面具)= 128;
I(~mask)= 255;
但如果我想检查......
如果存在像素值0(黑色)> 3,则如果存在像素值0(黑色),则索引(1,1)至(1,5)的像素变为128(灰色) < = 3或没有黑色像素,则像素变为255(白色)。
解决方案是什么?
谢谢
问候,Wahyu
答案 0 :(得分:0)
尝试计算矩阵每行的直方图,然后读取直方图值为零:
x = m[1,:];
[counts, bins] = hist(x, unique(x));
[diff, pos] = min(abs(bins - 0)); % replace zero with the value you want to search for
if counts(pos) > 3
z = 128
else
z = 255
end
m[1,:] = z * ones(1, size(m)(2));
this page让我对这个解决方案感到鼓舞。