¿Cuál sería un algoritmo para aplicar un filtro rosa a una imagen?

Una forma es realizar una mezcla alfa (consulte Composición alfa – Wikipedia y ¿Cómo calcular un color RGB especificando una cantidad de mezcla alfa?) En el que combina el color original con un nuevo color usando un factor de transparencia.

El siguiente código MATLAB demuestra esto. El valor RGB de rosa considerado en este ejemplo es [255, 20, 147] .

% Especifique el valor alfa en el rango 0-1, valores más altos => menor transparencia
alfa = 0.4;

% Especifique nuevos valores de color normalizados al rango 0-1
nuevoRGB = [255/255, 20/255, 147/255];

% Leer en una imagen de ejemplo y extraer los canales RGB
I = imread (‘peppers.png’);
I_red = I (:,:, 1);
I_verde = I (:,:, 2);
I_blue = I (:,:, 3);

% Realice la fusión en cada canal normalizando los valores de píxeles a 0-1
O_red = alpha * newRGB (1) + (1 – alpha) * im2double (I_red);
O_green = alpha * newRGB (2) + (1 – alpha) * im2double (I_green);
O_blue = alpha * newRGB (3) + (1 – alpha) * im2double (I_blue);

% Combine las imágenes resultantes en una nueva imagen RGB volviendo a escalar los valores% a 0-255
O (:,:, 1) = im2uint8 (O_red);
O (:,:, 2) = im2uint8 (O_verde);
O (:,:, 3) = im2uint8 (O_blue);

% Mostrar las imágenes
subtrama (1,2,1), imshow (I), título (‘Original’)
subtrama (1,2,2), imshow (O), título (‘Resultado’)

Aquí hay un algoritmo simple

a) Convertir la imagen RGB a YCbCr; El color está determinado por Cb y Cr

b) Y por sí mismo, proporciona una imagen simple en escala de grises, así que fija Cb y Cr a tu color preferido (por ejemplo, rosa)

c) Convertir de nuevo a RGB

Una biblioteca con la que puede lograr esto en una línea de código: NahomAgidew / IP4A

Especifique el valor RGB de rosa dentro de la biblioteca