MATLAB Answers

Convert gray to rgb

32 ビュー (過去 30 日間)
Raja Ahmad Shurim Raja Zainol
Raja Ahmad Shurim Raja Zainol 2021 年 1 月 13 日
コメント済み: Image Analyst 2021 年 1 月 15 日
Hey I want to change my gray image back to rgb.
This is my code
I1 = '3 new.jpeg';
img = imread(I1);
img_grey = rgb2gray(img);
A = img(:,:,3);
second_img = imsubtract(A, img_grey);
final_img = im2bw(second_img, 0.09);
imshow(final_img);
title('Final Img','fontsize',20);
rgbImage=ind2rgb(final_img,jet(256));
imshow (rgbImage);

  4 件のコメント

表示 1 件の古いコメント
Raja Ahmad Shurim Raja Zainol
Raja Ahmad Shurim Raja Zainol 2021 年 1 月 14 日
how to change it back to rgb actually?
Walter Roberson
Walter Roberson 2021 年 1 月 14 日
rgbImage=ind2rgb(uint8(final_img), jet(256));
You will not be able to convert it back to the original color.
However it would be possible to use the binary image to select parts of the original image to stay the same and convert everything else to black.
finalrgb = img.*uint8(final_img) ;
Raja Ahmad Shurim Raja Zainol
Raja Ahmad Shurim Raja Zainol 2021 年 1 月 14 日
when i using finalrgb = img.*uint8(final_img) ; in normal file it will show the final image but when i try to sub into gui, it cannot show the final image, why?

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

回答 (1 件)

Image Analyst
Image Analyst 2021 年 1 月 14 日
How did you call the display function, such as imshow(), in both cases? It should work the same. Are you using GUIDE or App Designer for the "GUI" method?
To change your gray scale image back into the original RGB image, you simply assign it:
img_grey = img;
That should work as long as you still have img available.

  3 件のコメント

Raja Ahmad Shurim Raja Zainol
Raja Ahmad Shurim Raja Zainol 2021 年 1 月 15 日
i am using the GUIDE, below is my code, i try to make the when i load one image, it can detect the blue or colour in the picture and show the final image of the blue or red colour section, i still new at this image processing
% --- Executes on button press in loadimage.
function loadimage_Callback(hObject, eventdata, handles)
% hObject handle to loadimage (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global I1
I1=imread(uigetfile('*.jpeg'));
subplot('Position', [0.2 0.2 0.6 0.6]);
imshow(I1);
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global I1
img_grey = rgb2gray(I1);
A = I1(:,:,1); %1=red 2=green 3=blue
almostfinal_img = imsubtract(A, img_grey);
final_img1 = im2bw(almostfinal_img, 0.09);
img_grey=img;GUID
subplot('Position', [0.2 0.2 0.6 0.6]);
title('Position Red','fontsize',20);
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global I1
img_grey = rgb2gray(I1);
B = I1(:,:,3); %1=red 2=green 3=blue
almostfinal_img2 = imsubtract(B, img_grey);
final_img = im2bw(almostfinal_img2, 0.06);
subplot('Position', [0.2 0.2 0.6 0.6]);
imshow(final_img);
title('Position Blue','fontsize',20);
Walter Roberson
Walter Roberson 2021 年 1 月 15 日
We recommend against using global.
subplot('Position', [0.2 0.2 0.6 0.6]);
subplot() of what axes in what figure?
Note: when you use subplot() and the position you give partly overlays an existing axes, the existing axes will be deleted.
img_grey=img;GUID
is GUID a function that you are intentionally calling there?
Note that in pushbuttoon2_Callback, you do not display anything.
Image Analyst
Image Analyst 2021 年 1 月 15 日
Attach both the .m file and the .fig file with the paperclip icon if you need more help.

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

タグ

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by