matlab图像空域平滑 1.读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图像显示在同一图像窗口中。 2.对加入噪声图像选用不同的平滑模板(3×3邻域模板、5×5邻域模板、超限像素平滑法、最大均匀性平滑、中值滤波等)做运算,对比不同模板所输出的效果。 图像空域锐化 1.读出一幅图像,利用sobel和prewitt算子对图像进行锐化,观察采用不同的输出形式,获得的图像锐化处理效果。 2.分别采用5×5,9×9大小的二阶Laplacian算子1中原始图像进行锐化,比较处理效果,要求在同一窗口中显示。
时间: 2024-02-18 21:01:25 浏览: 177
图像空域平滑:
1.读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图像显示在同一图像窗口中。
```matlab
img = imread('lena.png');
gray_img = rgb2gray(img);
% 添加椒盐噪声
salt_pepper_img = imnoise(gray_img, 'salt & pepper', 0.05);
% 添加高斯噪声
gaussian_img = imnoise(gray_img, 'gaussian', 0.02);
% 显示图像
figure;
subplot(1,3,1);
imshow(gray_img);
title('Original Image');
subplot(1,3,2);
imshow(salt_pepper_img);
title('Salt & Pepper Noise Image');
subplot(1,3,3);
imshow(gaussian_img);
title('Gaussian Noise Image');
```
2.对加入噪声图像选用不同的平滑模板(3×3邻域模板、5×5邻域模板、超限像素平滑法、最大均匀性平滑、中值滤波等)做运算,对比不同模板所输出的效果。
```matlab
% 3x3邻域平均滤波
avg_3x3 = imfilter(salt_pepper_img, fspecial('average', [3 3]));
% 5x5邻域平均滤波
avg_5x5 = imfilter(salt_pepper_img, fspecial('average', [5 5]));
% 超限像素平滑法
lim_3x3 = adpmedian(salt_pepper_img, 3);
% 最大均匀性平滑
max_3x3 = ordfilt2(salt_pepper_img, 5, ones(3,3));
% 中值滤波
med_3x3 = medfilt2(salt_pepper_img, [3 3]);
% 显示图像
figure;
subplot(2,3,1);
imshow(salt_pepper_img);
title('Salt & Pepper Noise Image');
subplot(2,3,2);
imshow(avg_3x3);
title('3x3 Avg Filter');
subplot(2,3,3);
imshow(avg_5x5);
title('5x5 Avg Filter');
subplot(2,3,4);
imshow(lim_3x3);
title('Adaptive Median Filter');
subplot(2,3,5);
imshow(max_3x3);
title('Max Uniformity Filter');
subplot(2,3,6);
imshow(med_3x3);
title('Median Filter');
```
图像空域锐化:
1.读出一幅图像,利用sobel和prewitt算子对图像进行锐化,观察采用不同的输出形式,获得的图像锐化处理效果。
```matlab
img = imread('lena.png');
gray_img = rgb2gray(img);
% Sobel算子
sobel_img = imfilter(gray_img, fspecial('sobel'));
sobel_img1 = imabsdiff(gray_img, sobel_img);
sobel_img2 = imadd(gray_img, sobel_img);
% Prewitt算子
prewitt_img = imfilter(gray_img, fspecial('prewitt'));
prewitt_img1 = imabsdiff(gray_img, prewitt_img);
prewitt_img2 = imadd(gray_img, prewitt_img);
% 显示图像
figure;
subplot(2,3,1);
imshow(gray_img);
title('Original Image');
subplot(2,3,2);
imshow(sobel_img);
title('Sobel Operator');
subplot(2,3,3);
imshow(prewitt_img);
title('Prewitt Operator');
subplot(2,3,4);
imshow(sobel_img1);
title('Sobel Operator (abs diff)');
subplot(2,3,5);
imshow(sobel_img2);
title('Sobel Operator (add)');
subplot(2,3,6);
imshow(prewitt_img1);
title('Prewitt Operator (abs diff)');
```
2.分别采用5×5,9×9大小的二阶Laplacian算子1中原始图像进行锐化,比较处理效果,要求在同一窗口中显示。
```matlab
% 5x5二阶Laplacian算子
laplacian_5 = fspecial('laplacian', 0.2);
laplacian_img_5 = imfilter(gray_img, laplacian_5);
% 9x9二阶Laplacian算子
laplacian_9 = fspecial('laplacian', 0.8);
laplacian_img_9 = imfilter(gray_img, laplacian_9);
% 显示图像
figure;
subplot(1,3,1);
imshow(gray_img);
title('Original Image');
subplot(1,3,2);
imshow(laplacian_img_5);
title('5x5 Laplacian Operator');
subplot(1,3,3);
imshow(laplacian_img_9);
title('9x9 Laplacian Operator');
```
阅读全文