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



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

您可以更改与您的图像对应的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

最新更新