假设我有两个输入图像。一个只包含三种颜色,如绿色,红色和蓝色作为标签。需要根据第一张图像中的颜色编辑的另一张图像。因此,例如,在标签图像为红色的任何地方,我都希望在原始图像上发生函数A
。
为此,我想创建一个查找,将颜色作为输入,并输出要在原始图像上执行的函数。
最好的方法是什么?
答案 0 :(得分:2)
您可以使用logical indexing。
im1 = [0 0 1;
1 2 0;
2 2 1];
im2 = rand(3);
找到im1
等于1
的地方:
idx = im1 == 1;
idx
现在是一个逻辑矩阵,可以作为im2
的掩码:
idx =
0 0 1
1 0 0
0 0 1
对im2
的所有相应像素执行某些操作:
im2(idx) = im2(idx) + 5;
此外,虽然我怀疑这是你问的问题,但你可以使用anonymous functions定义你的函数A
:
A = @(x)(2.*x.^2 - x + 5)
im2(idx) = A(im2(idx))