Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Image filtering with gaussian_filter
📖 Scenario: You have a small grayscale image represented as a 2D list of pixel brightness values. You want to smooth the image to reduce noise and make it look softer, like when you blur a photo slightly.
🎯 Goal: Apply a Gaussian filter to the image data using scipy.ndimage.gaussian_filter to create a smooth version of the image.
📋 What You'll Learn
Create a 2D list called image with exact pixel values
Create a variable called sigma to set the blur strength
Use scipy.ndimage.gaussian_filter with image and sigma
Print the filtered image array
💡 Why This Matters
🌍 Real World
Image smoothing is used in photography and computer vision to reduce noise and improve image quality.
💼 Career
Understanding image filtering is important for roles in data science, machine learning, and computer vision engineering.
Progress0 / 4 steps
1
Create the image data
Create a 2D list called image with these exact pixel values: [[10, 20, 30], [20, 30, 40], [30, 40, 50]]
SciPy
Hint
Think of image as a small grid of brightness numbers.
2
Set the blur strength
Create a variable called sigma and set it to 1 to control the amount of blur.
SciPy
Hint
The sigma value controls how much the image will be blurred.
3
Apply the Gaussian filter
Import gaussian_filter from scipy.ndimage and create a variable called filtered_image by applying gaussian_filter to image with sigma.
SciPy
Hint
Use gaussian_filter(image, sigma) to smooth the image.
4
Print the filtered image
Print the variable filtered_image to see the smoothed image values.
SciPy
Hint
The printed output shows the smoothed pixel values as a NumPy array.
Practice
(1/5)
1. What is the main purpose of using gaussian_filter in image processing?
easy
A. To detect edges in the image
B. To smooth the image by reducing noise
C. To convert the image to grayscale
D. To increase the image resolution
Solution
Step 1: Understand the function's role
gaussian_filter applies a blur effect that smooths the image by averaging nearby pixels weighted by a Gaussian curve.
Step 2: Identify the effect on image quality
This smoothing reduces noise and small details, making the image less sharp but cleaner.
Final Answer:
To smooth the image by reducing noise -> Option B
Quick Check:
Gaussian blur = noise reduction [OK]
Hint: Gaussian filter smooths images by blurring noise away [OK]
Common Mistakes:
Thinking it increases resolution
Confusing it with edge detection
Assuming it changes color format
2. Which of the following is the correct way to import and apply a Gaussian filter with sigma=2 to a 2D numpy array named image?
easy
A. from scipy.ndimage import gaussian_filter
filtered = gaussian_filter(image, sigma=2)
B. import scipy
filtered = scipy.gaussian_filter(image, 2)
C. from scipy import gaussian_filter
filtered = gaussian_filter(image, 2)
D. import gaussian_filter from scipy.ndimage
filtered = gaussian_filter(image, sigma=2)
Solution
Step 1: Check the correct import statement
The Gaussian filter is in scipy.ndimage, so import it with from scipy.ndimage import gaussian_filter.
Step 2: Verify function usage
Apply it by calling gaussian_filter(image, sigma=2) to blur with sigma 2.
Final Answer:
from scipy.ndimage import gaussian_filter
filtered = gaussian_filter(image, sigma=2) -> Option A
Quick Check:
Correct import and sigma usage = from scipy.ndimage import gaussian_filter
filtered = gaussian_filter(image, sigma=2) [OK]
Hint: Import from scipy.ndimage, use sigma as keyword [OK]
Common Mistakes:
Wrong import path for gaussian_filter
Passing sigma as positional without keyword
Using incorrect import syntax
3. Given the code below, what will be the output array after applying the Gaussian filter?
Hint: Gaussian blur spreads bright pixels softly to neighbors [OK]
Common Mistakes:
Expecting no change in array
Assuming uniform average instead of weighted blur
Misreading sigma effect as sharpening
4. Identify the error in the following code snippet that applies a Gaussian filter:
import numpy as np
from scipy.ndimage import gaussian_filter
image = np.ones((5,5))
filtered = gaussian_filter(image, sigma='2')
print(filtered)
medium
A. gaussian_filter cannot be applied to numpy arrays
B. The array shape is invalid for gaussian_filter
C. Missing import for numpy
D. sigma should be a number, not a string
Solution
Step 1: Check parameter types
The sigma parameter must be a numeric value (int or float), not a string.
Step 2: Identify the cause of error
Passing '2' as a string causes a type error when the filter tries to compute the blur.
Final Answer:
sigma should be a number, not a string -> Option D
Quick Check:
Numeric sigma required, string causes error [OK]
Hint: Use numeric sigma, not string, to avoid errors [OK]
Common Mistakes:
Passing sigma as string
Assuming gaussian_filter needs special array types
Ignoring import errors
5. You have a noisy grayscale image stored as a 2D numpy array. You want to smooth the image but keep edges relatively sharp. Which approach using gaussian_filter and its parameters is best?
hard
A. Apply gaussian_filter multiple times with sigma=3
B. Use a large sigma value like 5 to blur the image heavily
C. Use a small sigma value like 0.5 to reduce noise but preserve edges
D. Do not use gaussian_filter; use median filter instead
Solution
Step 1: Understand sigma effect on smoothing
Small sigma values cause light blur, preserving edges better than large sigma which blurs heavily.
Step 2: Choose best sigma for noise reduction and edge preservation
Using sigma=0.5 smooths noise but keeps edges sharper than larger sigma values or repeated blurring.
Final Answer:
Use a small sigma value like 0.5 to reduce noise but preserve edges -> Option C
Quick Check:
Small sigma = smooth noise + keep edges [OK]
Hint: Small sigma blurs less, preserving edges better [OK]