how can i convert detected grayscale image object back into rgb form?

53 views (last 30 days)
Atul Kumar
Atul Kumar on 21 Nov 2021
Commented: Atul Kumar on 22 Nov 2021
I have to detect red chilies from plant. I got this result which shown in given figure but now i have to convert this final detected chili image back into red form, how can i do this?
This is the code which i used in this work.
i=imread('IMG_20210825_153633 - Copy.jpg');
subplot(2,2,1);
imshow(i)
G=rgb2gray(i);
subplot(2,2,2);
imshow(G);
A=i(:,:,1);
subplot(2,2,3);
imshow(A);
f=imsubtract(A,G);
subplot(2,2,4);
imshow(f)

Accepted Answer

yanqi liu
yanqi liu on 22 Nov 2021
clc; clear all; close all;
i=imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/808449/image.jpeg');
i=imcrop(i,[5 8 632 291]);
subplot(2,2,1);
imshow(i)
G=rgb2gray(i);
subplot(2,2,2);
imshow(G);
A=i(:,:,1);
subplot(2,2,3);
imshow(A);
f=imsubtract(A,G);
subplot(2,2,4);
imshow(f)
bw = im2bw(mat2gray(f));
bw = imclose(bw, strel('disk', 5));
bw = bwareaopen(bw, 5);
i2 = i .* uint8(cat(3,bw,bw,bw));
figure; imshow(i2, []);

More Answers (2)

Yongjian Feng
Yongjian Feng on 21 Nov 2021
Edited: Yongjian Feng on 21 Nov 2021
How about changing the red chili area of the last image to alpha = 0 (so it is completely transparent). Then overlay on top of the original image

Image Analyst
Image Analyst on 21 Nov 2021
Use the Color Thresholder app on the apps tab of the tool ribbon. Load your image then choose HSV color space, then adjust the thresholds, then export the function. Easy, but if you have trouble, let us know, but attach the original image 'IMG_20210825_153633 - Copy.jpg'

Community Treasure Hunt

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

Start Hunting!

Translated by