フィルターのクリア

How to change the background colour of this image to 0 and foreground colour to 1 to make it binary.

1 回表示 (過去 30 日間)
I tried this code but not working properly.
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
% Now make the mask
mask = ~(redChannel ~= 0 & greenChannel == 0 & blueChannel == 0);
  1 件のコメント
Guillaume
Guillaume 2019 年 6 月 24 日
Your image looks like a labelised image to which false colours have been applied. Rather than trying to revert the false colouring, it would be better to work from the original labelised image. Don't you still have it?

サインインしてコメントする。

回答 (2 件)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2019 年 6 月 23 日
Hi,
Here is a short code that reads and separates the three layers of colors:
AA = imread('Matrix.png');
R=AA(:,:,1);
G=AA(:,:,2);
B=AA(:,:,3);
imshow(AA)
RGB(:,:,1)=R;
RGB(:,:,2)=G;
RGB(:,:,3)=B;
imshow(RGB)
% Now you can change the values of any layer...
Good luck.

Image Analyst
Image Analyst 2019 年 6 月 24 日
You'd need
mask = ~(redChannel ~= 0 & greenChannel == 0 & blueChannel == 255);
% Mask the image using bsxfun() function to multiply the mask by each channel individually.
maskedRgbImage = bsxfun(@times, rgbImage, cast(mask, 'like', rgbImage));

カテゴリ

Help Center および File ExchangeModify Image Colors についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by