如何使用MATLAB将图像的一部分的颜色更改为同一图像的另一部分

时间:2013-05-09 18:05:25

标签: image matlab image-processing colors rgb

我有彩色图像。图像由具有阴影的对象组成。我删除了阴影,但阴影部分的颜色与背景颜色不相似。现在如何使用MATLAB编码匹配颜色?

1 个答案:

答案 0 :(得分:0)

您可以更改与您的图像对应的matlab矩阵(此处称为IMG)。例如,假设您将阴影的像素更改为-20。 比你可以得到他们的索引

indexes = (IMG == -20)

要将这些值更改为背景颜色,假设等于100,则设置为

IMG(indexes) = 100

由于您正在使用彩色图像,因此您需要对与图像对应的所有三种颜色矩阵执行此操作。在这种情况下,每个图层都有一个背景颜色,而不是重复过程

indexes1 = (IMG(:, :, 1) == shadow_color_layer_1)

indexes2 = (IMG(:, :, 2) == shadow_color_layer_2)

indexes3 = (IMG(:, :, 3) == shadow_color_layer_3)

IMG(indexes,1) = background_color_layer_1

IMG(indexes,2) = background_color_layer_2

IMG(indexes,3) = background_color_layer_3