i=imread('car.jpg'); r=i(:,:,1); imshow(r); my result after this is a black and white image. instead it should display red component of the image.. please suggest something to get exact result.
Kshitij Singh answered .
2025-11-20
To display the red, green, and blue components of an image in MATLAB, you'll need to isolate each color channel and then visualize them properly. Your current approach shows the intensity of the red channel as a grayscale image. To see the red component accurately, you can create an image where only the red channel is visible and the others are set to zero.
Here's how you can do it:
1. Read the Image: Load the image into MATLAB.
2. Isolate the Color Channels: Extract the red, green, and blue channels.
3. Create Colored Images: Create images for each color channel by setting the other channels to zero.
4. Display the Images: Use `imshow` to display the images.
Here's the code to achieve this:
% Read the image
i = imread('car.jpg');
% Extract the red, green, and blue components
r = i(:,:,1);
g = i(:,:,2);
b = i(:,:,3);
% Create images with only the red, green, and blue components
redImage = cat(3, r, zeros(size(r)), zeros(size(r)));
greenImage = cat(3, zeros(size(g)), g, zeros(size(g)));
blueImage = cat(3, zeros(size(b)), zeros(size(b)), b);
% Display the images
figure;
subplot(1, 3, 1); imshow(redImage); title('Red Component');
subplot(1, 3, 2); imshow(greenImage); title('Green Component');
subplot(1, 3, 3); imshow(blueImage); title('Blue Component');
Explanation:
- Extract Color Channels: This separates the red, green, and blue components of the image.
- Create Colored Images: This combines each color channel with zeros for the other two channels to create an image that only shows the red, green, or blue component.
- Display Images: This visualizes each color component in a separate subplot for easy comparison.
By following these steps, you can accurately display the red, green, and blue components of an image in MATLAB. This method ensures each component is shown in its true color rather than as a grayscale image.