在Matlab中垂直检查像素

时间:2012-04-16 14:42:54

标签: matlab

我有一个图像(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;

但是如果我想垂直检查像素,从索引(1,1)到(5,1),再到右边,索引(1,2)到(5,2),直到结束。 什么是解决方案?

谢谢

问候,Wahyu

1 个答案:

答案 0 :(得分:1)

您可以转置矩阵/图像,使用上一个问题中给出的解决方案,然后再次转置以返回原始矩阵/图像:

I = I';
%# Do solution you got last time here
%#{

%#}

I = I';