📖 Scenario: You are working with images in MATLAB. Images can be grayscale (black and white) or RGB (color). You want to create simple examples of both types to understand how they are stored and displayed.
🎯 Goal: Create a grayscale image and an RGB image using matrices in MATLAB. Then display both images to see the difference.
📋 What You'll Learn
Create a 3x3 grayscale image matrix with specific values
Create a 3x3x3 RGB image matrix with specific color values
Use a variable to store the grayscale image
Use a variable to store the RGB image
Display both images using MATLAB's imshow function
💡 Why This Matters
🌍 Real World
Working with images is common in photography, medical imaging, and computer vision. Understanding how images are stored helps in editing and analyzing them.
💼 Career
Many jobs in data science, engineering, and research require manipulating images. Knowing how to handle grayscale and RGB images in MATLAB is a useful skill.
Progress0 / 4 steps
1
Create a grayscale image matrix
Create a variable called grayImage that is a 3x3 matrix with these exact values: [0 128 255; 64 192 32; 255 0 128].
MATLAB
Hint
Use square brackets to create the matrix. Separate rows with semicolons. Use uint8 to specify the image data type.
2
Create an RGB image matrix
Create a variable called rgbImage that is a 3x3x3 matrix representing an RGB image. Use these exact values for the red channel: [255 0 0; 0 255 0; 0 0 255], green channel: [0 255 0; 255 0 255; 0 255 0], and blue channel: [0 0 255; 255 255 0; 255 0 0].
MATLAB
Hint
Use zeros(3,3,3,'uint8') to create an empty RGB image matrix. Assign each color channel separately.
3
Display the grayscale image
Use the imshow function to display the grayscale image stored in grayImage.
MATLAB
Hint
Simply call imshow with the grayscale image variable.
4
Display the RGB image
Use the imshow function to display the RGB image stored in rgbImage.
MATLAB
Hint
Call imshow with the RGB image variable after displaying the grayscale image.
Practice
(1/5)
1. Which of the following correctly describes a grayscale image in MATLAB?
easy
A. It has one channel per pixel representing shades of gray.
B. It has three channels representing red, green, and blue colors.
C. It stores color information in four channels including alpha transparency.
D. It is always stored as a 3D matrix with size MxNx3.
Solution
Step 1: Understand grayscale image structure
Grayscale images have only one channel per pixel, showing intensity from black to white.
Step 2: Compare with RGB image structure
RGB images have three channels (red, green, blue), so grayscale images differ by having only one channel.
Final Answer:
It has one channel per pixel representing shades of gray. -> Option A
Quick Check:
Grayscale = 1 channel [OK]
Hint: Check if image size third dimension equals 1 for grayscale [OK]
Common Mistakes:
Confusing grayscale with RGB images having 3 channels
Assuming grayscale images have multiple color channels
Thinking grayscale images are always 3D matrices
2. Which MATLAB command correctly checks if an image img is RGB?
easy
A. size(img, 3) == 1
B. ndims(img) == 2
C. length(img) == 3
D. size(img, 3) == 3
Solution
Step 1: Recall RGB image dimension
RGB images have three color channels, so the third dimension size is 3.
Step 2: Identify correct MATLAB syntax
Using size(img, 3) == 3 checks if the third dimension equals 3, confirming RGB.
Final Answer:
size(img, 3) == 3 -> Option D
Quick Check:
Third dimension = 3 means RGB [OK]
Hint: Use size(img,3) to check color channels quickly [OK]
Common Mistakes:
Using ndims instead of size for channel count
Checking length instead of size for dimensions
Confusing 2D grayscale with RGB dimensions
3. Given the MATLAB code:
img = imread('peppers.png'); dim = size(img); channels = dim(3);
What is the value of channels for this image?
medium
A. 1
B. 2
C. 3
D. 4
Solution
Step 1: Understand the image type of 'peppers.png'
'peppers.png' is a standard RGB image with three color channels.
Step 2: Analyze the code output
The size(img) returns a vector where the third element is the number of channels, which is 3 for RGB.
Final Answer:
3 -> Option C
Quick Check:
peppers.png is RGB, so channels = 3 [OK]
Hint: Standard color images usually have 3 channels [OK]
Common Mistakes:
Assuming PNG images are grayscale by default
Confusing number of dimensions with number of channels
Expecting 4 channels for PNG without alpha
4. Consider this MATLAB code snippet:
img = imread('cameraman.tif'); if size(img, 3) == 3 disp('RGB Image'); else disp('Grayscale Image'); end
What is the output when running this code?
medium
A. Grayscale Image
B. RGB Image
C. Error: Index exceeds matrix dimensions.
D. No output
Solution
Step 1: Identify image type of 'cameraman.tif'
'cameraman.tif' is a grayscale image with only one channel.
Step 2: Evaluate the condition in the code
Since size(img, 3) returns 1 (or may not exist), the else branch runs, printing 'Grayscale Image'.
Final Answer:
Grayscale Image -> Option A
Quick Check:
cameraman.tif is grayscale, so output = Grayscale Image [OK]
Hint: Grayscale images have no 3rd dimension or size 1 [OK]
Common Mistakes:
Expecting 3 channels for all images
Assuming error due to missing third dimension
Ignoring else branch output
5. You have an image matrix img in MATLAB. Write a code snippet to convert an RGB image to grayscale only if it is RGB. Which of the following is correct?
hard
A. if ndims(img) == 2
img_gray = rgb2gray(img);
else
img_gray = img;
end
B. if size(img, 3) == 3
img_gray = rgb2gray(img);
else
img_gray = img;
end
C. if size(img, 3) == 1
img_gray = rgb2gray(img);
else
img_gray = img;
end
D. if size(img, 3) == 4
img_gray = rgb2gray(img);
else
img_gray = img;
end
Solution
Step 1: Check if image is RGB by third dimension size
RGB images have 3 channels, so size(img, 3) == 3 confirms RGB.
Step 2: Convert RGB to grayscale only if condition is true
Use rgb2gray(img) to convert RGB to grayscale; otherwise keep image as is.
Final Answer:
if size(img, 3) == 3
img_gray = rgb2gray(img);
else
img_gray = img;
end -> Option B
Quick Check:
Convert only if 3 channels (RGB) [OK]
Hint: Check size(img,3)==3 before rgb2gray conversion [OK]
Common Mistakes:
Checking for 1 channel instead of 3
Using ndims instead of size for channels
Assuming 4 channels means RGB
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.