识别和替换值matlab

时间:2013-07-02 18:24:05

标签: matlab

所以我将某个灰度图像作为二进制文件。在图像中显示红色后,我尝试创建一系列“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 ....”。任何人都可以帮我弄清楚为什么会发生这种情况?感谢。

1 个答案:

答案 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;