如何在矩阵matlab中编写if else语句

时间:2018-03-09 22:06:26

标签: image if-statement coordinates pixel pixels

我正在尝试读取图像并获取x,y和像素坐标。它是一个RGB图像,大小(282,282,3)。但是我得到像素坐标矩阵(282 * 3,282,像素值)。此外,虽然if else条件适用于正常的给定值,但在此代码中,它不起作用。任何人都可以帮我找到我错的地方吗?

清除所有     CLC

A = double(imread('F:\02.jpg'));
size(A)
[length, width] = size(A);
[x, y] = meshgrid(1:width, 1:length);
z(:) = A(:)/255;
if(z >=0.50000)
z =1;
elseif(z <0.50000)
z=0;
end
Z = z(:)

1 个答案:

答案 0 :(得分:0)

由于 z 不是标量,而是矩阵或向量,因此逻辑比较 z> = val 也会得到矩阵/向量(混合的1和0)。您可以做的就是将此结果用作索引,例如

ix = z >= 0.5;
z( ix) = 1;
z(~ix) = 0;