0

所以我有一定的灰度图像作为二进制文件。在图像中变红后,我尝试创建一系列“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 矩阵,在“else if 20 ....”行之后的值为“20”。谁能帮我弄清楚为什么会发生这种情况?谢谢。

4

1 回答 1

0

您需要更改 myimage 中具有特定值的特定索引。您当前调用它的方式是用特定值覆盖 myimage 变量。查找所有相关索引的一种方法是使用 find:

find(myimage==20)

为了查找和替换所有值,请参考 myimage 中感兴趣的索引:

myimage(find(myimage<20))=0;

并组合多组索引(例如值 >20 AND <40),使用 intersect:

myimage(intersect(find(myimage>20),find(myimage<40)))=20;

于 2013-07-02T18:34:30.217 回答