Bird
Raised Fist0
MATLABdata~30 mins

Image types (grayscale, RGB) in MATLAB - Mini Project: Build & Apply

Choose your learning style10 modes available
Image types (grayscale, RGB)
📖 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

  1. Step 1: Understand grayscale image structure

    Grayscale images have only one channel per pixel, showing intensity from black to white.
  2. Step 2: Compare with RGB image structure

    RGB images have three channels (red, green, blue), so grayscale images differ by having only one channel.
  3. Final Answer:

    It has one channel per pixel representing shades of gray. -> Option A
  4. 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

  1. Step 1: Recall RGB image dimension

    RGB images have three color channels, so the third dimension size is 3.
  2. Step 2: Identify correct MATLAB syntax

    Using size(img, 3) == 3 checks if the third dimension equals 3, confirming RGB.
  3. Final Answer:

    size(img, 3) == 3 -> Option D
  4. 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

  1. Step 1: Understand the image type of 'peppers.png'

    'peppers.png' is a standard RGB image with three color channels.
  2. 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.
  3. Final Answer:

    3 -> Option C
  4. 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

  1. Step 1: Identify image type of 'cameraman.tif'

    'cameraman.tif' is a grayscale image with only one channel.
  2. 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'.
  3. Final Answer:

    Grayscale Image -> Option A
  4. 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

  1. Step 1: Check if image is RGB by third dimension size

    RGB images have 3 channels, so size(img, 3) == 3 confirms RGB.
  2. Step 2: Convert RGB to grayscale only if condition is true

    Use rgb2gray(img) to convert RGB to grayscale; otherwise keep image as is.
  3. Final Answer:

    if size(img, 3) == 3 img_gray = rgb2gray(img); else img_gray = img; end -> Option B
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard