0
0
SciPydata~20 mins

Median and uniform filters in SciPy - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Median and Uniform Filters Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of median filter on 1D array
What is the output of the following code applying a median filter with size 3 on a 1D array?
SciPy
import numpy as np
from scipy.ndimage import median_filter

arr = np.array([1, 2, 80, 4, 5, 6, 7])
filtered = median_filter(arr, size=3)
print(filtered.tolist())
A[2, 2, 4, 5, 6, 6, 7]
B[1, 2, 80, 4, 5, 6, 7]
C[1, 2, 4, 4, 5, 6, 7]
D[1, 2, 4, 5, 5, 6, 7]
Attempts:
2 left
💡 Hint
Median filter replaces each element with the median of neighbors within the window size.
data_output
intermediate
2:00remaining
Result of uniform filter on 2D array
What is the resulting 2D array after applying a uniform filter with size 3 on this 3x3 array?
SciPy
import numpy as np
from scipy.ndimage import uniform_filter

arr = np.array([[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9]])
filtered = uniform_filter(arr, size=3, mode='constant', cval=0)
print(filtered)
A
[[1.55555556 2.33333333 1.88888889]
 [3.66666667 5.         4.11111111]
 [3.11111111 4.66666667 3.55555556]]
B
[[1.33333333 2.         1.66666667]
 [3.         5.         3.        ]
 [2.66666667 4.         2.66666667]]
C
[[1. 2. 3.]
 [4. 5. 6.]
 [7. 8. 9.]]
D
[[0.66666667 1.33333333 1.        ]
 [2.33333333 4.         3.        ]
 [2.         3.33333333 2.33333333]]
Attempts:
2 left
💡 Hint
Uniform filter computes the average over the window including zero padding outside edges.
visualization
advanced
3:00remaining
Visual effect of median vs uniform filter on noisy image
Which option best describes the visual difference after applying median and uniform filters on a noisy grayscale image?
SciPy
import numpy as np
import matplotlib.pyplot as plt
from scipy.ndimage import median_filter, uniform_filter

np.random.seed(0)
image = np.ones((10,10)) * 100
noise = np.random.randint(0, 50, (10,10))
noisy_image = image + noise
median_img = median_filter(noisy_image, size=3)
uniform_img = uniform_filter(noisy_image, size=3)

plt.subplot(1,3,1)
plt.title('Noisy')
plt.imshow(noisy_image, cmap='gray')
plt.subplot(1,3,2)
plt.title('Median Filter')
plt.imshow(median_img, cmap='gray')
plt.subplot(1,3,3)
plt.title('Uniform Filter')
plt.imshow(uniform_img, cmap='gray')
plt.show()
AMedian filter increases noise; uniform filter sharpens edges.
BMedian filter removes noise while preserving edges; uniform filter blurs edges and smooths noise.
CBoth filters produce identical smoothing and edge preservation.
DUniform filter removes noise while preserving edges; median filter blurs edges and smooths noise.
Attempts:
2 left
💡 Hint
Median filter is good for salt-and-pepper noise; uniform filter averages values.
🧠 Conceptual
advanced
2:00remaining
Effect of filter size on median and uniform filters
How does increasing the filter size affect the output of median and uniform filters on a noisy signal?
AIncreasing size increases smoothing for both filters; median filter preserves edges better but may remove small details.
BIncreasing size decreases smoothing for both filters; median filter blurs edges more than uniform filter.
CIncreasing size has no effect on median filter; uniform filter smoothing decreases.
DIncreasing size causes median filter to amplify noise; uniform filter preserves edges perfectly.
Attempts:
2 left
💡 Hint
Think about how larger windows affect averaging and median calculations.
🔧 Debug
expert
2:00remaining
Identify the error in applying median filter on a 3D array
What error will this code raise when applying median_filter with size=3 on a 3D array without specifying axis?
SciPy
import numpy as np
from scipy.ndimage import median_filter

arr = np.random.randint(0, 10, (4,4,4))
filtered = median_filter(arr, size=3)
print(filtered.shape)
AValueError: size must be less than or equal to input size along each axis
BTypeError: size must be a sequence of integers
CNo error; output shape is (4,4,4)
DNo error; output shape is (2,2,2)
Attempts:
2 left
💡 Hint
Check how median_filter handles size parameter for multi-dimensional arrays.