所以我将某个灰度图像作为二进制文件。在图像中显示红色后,我尝试创建一系列“if”循环,以便用一个值替换一系列值,并保持矩阵的其余部分不变。
我使用了这段代码
if myimage < 20
myimage = 0;
else if 20 < myimage <40
myimage = 20;
else if 40 < myimage < 60
myimage = 40;
else if 60<myimage<80
myimage = 60;
end
end
end
end
但由于某种原因无法加载图片。经过一些调试后,我发现该文件正在成为一个1 x 1矩阵,其值为“20”后面的“else if 20 ....”。任何人都可以帮我弄清楚为什么会发生这种情况?感谢。
答案 0 :(得分:0)
您需要更改myimage中具有特定值的特定索引。你当前调用它的方式,你用特定的值覆盖myimage变量。找到所有相关指数的一种方法是使用find:
find(myimage==20)
为了找到并用一个衬里替换所有值,请参考myimage中感兴趣的索引:
myimage(find(myimage<20))=0;
并组合多组索引(例如,值> 20 AND&lt; 40),使用intersect:
myimage(intersect(find(myimage>20),find(myimage<40)))=20;