Para convertir solo color negro a blanco en Matlab

Yo se estohilo sobre la conversión de color negro a blanco y blanco a negro simultáneamente. Me gustaría convertir solo negro a blanco. Yo se estohilo sobre hacer esto lo que pido pero no entiendo lo que sale mal.

Imagen

Código

rgbImage = imread('ecg.png');
grayImage = rgb2gray(rgbImage); % for non-indexed images
level = graythresh(grayImage); % threshold for converting image to binary, 
binaryImage = im2bw(grayImage, level); 
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
% Make the black parts pure red.
redChannel(~binaryImage) = 255;
greenChannel(~binaryImage) = 0;
blueChannel(~binaryImage) = 0;
% Now recombine to form the output image.
rgbImageOut = cat(3, redChannel, greenChannel, blueChannel);
imshow(rgbImageOut);

Lo que da

Donde parece haber algo mal en el canal de color rojo. El color negro es solo (0,0,0) en RGB, por lo que su eliminación debería significar convertir cada (0,0,0) píxeles en blanco (255,255,255). Haciendo esta idea con

redChannel(~binaryImage) = 255;
greenChannel(~binaryImage) = 255;
blueChannel(~binaryImage) = 255;

Da

Así que debo haber entendido mal algo en Matlab. El color azul no debe tener negro. Entonces esta última imagen es extraña.

¿Cómo puedes convertir solo el color negro en blanco? Quiero mantener el color azul del ECG.

Respuestas a la pregunta(4)

Su respuesta a la pregunta