Matlab中的垂直像素检测

Matlab中的垂直像素检测,matlab,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(任意(I==0,2),5,1) I(掩码)=128 I(~mask)=255 但是如果我想垂直检查像素,从索引(1,1)到(

我有一个图像(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(任意(I==0,2),5,1)

I(掩码)=128

I(~mask)=255

但是如果我想垂直检查像素,从索引(1,1)到(5,1),然后向右,从索引(1,2)到(5,2),直到结束。 解决办法是什么

多谢各位


您好,Wahyu

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

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

%#}

I = I';

我不确定我是否完全理解你的问题,但找到图像中所有零像素的简单方法是'img=[0,5,3;0,0,7;0,3,0];零像素=逻辑(img==0);你可以很容易的找到非零值。谢谢你,你真的帮了我很大的忙。