Чтобы преобразовать только черный цвет в белый в Matlab

я знаю этонить о преобразовании черного цвета в белый и белый в черный одновременно. Я хотел бы конвертировать только черный в белый. я знаю этонить о том, что я делаю, о чем я прошу, но я не понимаю, что не так.

Картина

Код

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);

Который дает

Где, кажется, что-то не так в канале красного цвета. Черный цвет просто (0,0,0) в RGB, поэтому его удаление должно означать превращение каждого (0,0,0) пикселя в белый (255,255,255). Делать эту идею с

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

дает

Так что я, должно быть, что-то неправильно понял в Matlab. Синий цвет не должен иметь черного цвета. Так что это последнее изображение странно.

Как вы можете превратить только черный цвет в белый? Я хочу сохранить синий цвет ЭКГ.

Ответы на вопрос(4)

Ваш ответ на вопрос