filter_kernel is a small matrix that defines the filter effect.
Examples
This applies a simple blur using a 3x3 average filter.
MATLAB
h = fspecial('average', [33]);
filtered_image = imfilter(original_image, h);
This detects edges using the Sobel filter.
MATLAB
h = fspecial('sobel');
filtered_image = imfilter(original_image, h);
This applies a Gaussian blur with a 5x5 kernel and standard deviation 1.0.
MATLAB
h = fspecial('gaussian', [55], 1.0);
filtered_image = imfilter(original_image, h);
Sample Program
This program reads a sample image, applies a Gaussian blur filter, and shows both the original and filtered images side by side.
MATLAB
original_image = imread('cameraman.tif');
% Create a Gaussian filter kernel
h = fspecial('gaussian', [55], 1.0);
% Apply the filter to the image
filtered_image = imfilter(original_image, h);
% Show original and filtered images side by side
figure;
subplot(1,2,1);
imshow(original_image);
title('Original Image');
subplot(1,2,2);
imshow(filtered_image);
title('Filtered Image (Gaussian Blur)');
OutputSuccess
Important Notes
Filters are small matrices that slide over the image to change pixel values.
Use fspecial to create common filter types easily.
Always check the filtered image visually to understand the effect.
Summary
Image filtering changes images by applying small matrix operations.
Common filters include blur, sharpen, and edge detection.
MATLAB's imfilter and fspecial make filtering easy.
Practice
(1/5)
1. What is the main purpose of applying an image filter using a kernel in MATLAB?
easy
A. To convert the image to grayscale
B. To modify the image by emphasizing or reducing certain features
C. To increase the image file size
D. To change the image file format
Solution
Step 1: Understand what a kernel does
A kernel is a small matrix used to process an image by changing pixel values based on neighbors.
Step 2: Identify the effect of filtering
Filtering modifies the image to highlight edges, blur, or sharpen features, not file format or size.
Final Answer:
To modify the image by emphasizing or reducing certain features -> Option B
Quick Check:
Image filtering changes features = D [OK]
Hint: Filters change image features, not file type or size [OK]
Common Mistakes:
Confusing filtering with file format conversion
Thinking filtering changes image size
Assuming filtering only converts to grayscale
2. Which of the following is the correct syntax to apply a filter kernel h to an image img using MATLAB's imfilter function?
easy
A. filtered_img = filter(h, img);
B. filtered_img = filter(img, h);
C. filtered_img = imfilter(h, img);
D. filtered_img = imfilter(img, h);
Solution
Step 1: Recall MATLAB's imfilter syntax
The correct syntax is imfilter(image, kernel), where the image is first and kernel second.
Step 2: Check each option
filtered_img = imfilter(img, h); matches the correct syntax. Options B and D use 'filter' which is incorrect. filtered_img = imfilter(h, img); reverses arguments.
Final Answer:
filtered_img = imfilter(img, h); -> Option D
Quick Check:
imfilter(image, kernel) = A [OK]
Hint: imfilter(image, kernel) is the correct order [OK]
fspecial('average', 3) creates a 3x3 averaging filter, which is valid.
Step 2: Check imfilter usage
imfilter supports RGB images and 'same' option returns output same size as input.
Final Answer:
No error; the code runs correctly -> Option A
Quick Check:
fspecial + imfilter with 'same' = A [OK]
Hint: imfilter works with color images and 'same' option [OK]
Common Mistakes:
Assuming imfilter only works on grayscale
Thinking 'same' is invalid option
Believing kernel size must be odd but 3 is odd and valid
5. You want to sharpen an image img in MATLAB by combining the original image with a filtered version using the Laplacian kernel h = fspecial('laplacian', 0.2);. Which code snippet correctly applies this sharpening?
hard
A. sharpened = img - imfilter(img, h, 'replicate');
B. sharpened = img + imfilter(img, h, 'replicate');
C. sharpened = imfilter(img, h, 'replicate') - img;
D. sharpened = imfilter(img, h, 'replicate') + img * 0.2;
Solution
Step 1: Understand Laplacian sharpening
Sharpening = original image minus the Laplacian filtered image to enhance edges.
Step 2: Match code to formula
sharpened = img - imfilter(img, h, 'replicate'); subtracts the filtered image from original, correctly applying sharpening.
Final Answer:
sharpened = img - imfilter(img, h, 'replicate'); -> Option A
Quick Check:
Sharpen = img - Laplacian filtered img = B [OK]
Hint: Sharpen by subtracting Laplacian filtered image [OK]
Common Mistakes:
Adding instead of subtracting Laplacian result
Multiplying original image incorrectly
Confusing Laplacian with averaging filter
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.