请使用matlab完成以下任务,并给出代码1. 编程实现低通掩模法平滑图象; 2. 比较 Box 掩模和高斯掩模的平滑效果; 3. 编程实现拉普拉斯掩模法锐化图象; 4. 比较拉普拉斯掩模 H3 和含有对角线分量的拉普拉斯掩模 H4 的锐化效果; 5. 尝试用高斯型拉普拉斯掩模(LoG 算子)锐化图象,并观察与其他拉普拉斯掩模在抑 制噪声上的差异;将以上结果合在一起显示
时间: 2023-06-13 19:05:25 浏览: 121
以下是代码实现:
1. 低通掩模法平滑图像
```matlab
img = imread('test.jpg'); % 读取图像
imshow(img); % 显示原图
title('原图');
% 低通滤波器掩模
low_pass_mask = [1/9 1/9 1/9; 1/9 1/9 1/9; 1/9 1/9 1/9];
% 应用低通滤波器掩模
smoothed_img = imfilter(img, low_pass_mask);
figure, imshow(smoothed_img);
title('低通掩模平滑图像');
```
2. 比较 Box 掩模和高斯掩模的平滑效果
```matlab
img = imread('test.jpg'); % 读取图像
imshow(img); % 显示原图
title('原图');
% Box 掩模
box_mask = ones(3, 3) / 9;
% 高斯掩模
gaussian_mask = fspecial('gaussian', [3 3], 0.5); % 方差为0.5
% 应用 Box 掩模
box_smoothed_img = imfilter(img, box_mask);
figure, imshow(box_smoothed_img);
title('Box 掩模平滑图像');
% 应用高斯掩模
gaussian_smoothed_img = imfilter(img, gaussian_mask);
figure, imshow(gaussian_smoothed_img);
title('高斯掩模平滑图像');
```
3. 拉普拉斯掩模法锐化图像
```matlab
img = imread('test.jpg'); % 读取图像
imshow(img); % 显示原图
title('原图');
% 拉普拉斯掩模
laplacian_mask = [0 -1 0; -1 4 -1; 0 -1 0];
% 应用拉普拉斯掩模
sharpened_img = imfilter(img, laplacian_mask);
figure, imshow(sharpened_img);
title('拉普拉斯掩模锐化图像');
```
4. 比较拉普拉斯掩模 H3 和含有对角线分量的拉普拉斯掩模 H4 的锐化效果
```matlab
img = imread('test.jpg'); % 读取图像
imshow(img); % 显示原图
title('原图');
% H3 掩模
h3_mask = [-1 -1 -1; -1 8 -1; -1 -1 -1];
% H4 掩模
h4_mask = [1 -2 1; -2 4 -2; 1 -2 1];
% 应用 H3 掩模
h3_sharpened_img = imfilter(img, h3_mask);
figure, imshow(h3_sharpened_img);
title('H3 掩模锐化图像');
% 应用 H4 掩模
h4_sharpened_img = imfilter(img, h4_mask);
figure, imshow(h4_sharpened_img);
title('H4 掩模锐化图像');
```
5. 高斯型拉普拉斯掩模(LoG 算子)锐化图像,并观察与其他拉普拉斯掩模在抑制噪声上的差异
```matlab
img = imread('test.jpg'); % 读取图像
imshow(img); % 显示原图
title('原图');
% LoG 算子
log_mask = fspecial('log', [3 3], 0.5); % 方差为0.5
% 应用 LoG 算子
log_sharpened_img = imfilter(img, log_mask);
figure, imshow(log_sharpened_img);
title('LoG 算子锐化图像');
```
将以上结果合在一起显示
```matlab
img = imread('test.jpg'); % 读取图像
% 低通滤波器掩模
low_pass_mask = [1/9 1/9 1/9; 1/9 1/9 1/9; 1/9 1/9 1/9];
% 应用低通滤波器掩模
smoothed_img = imfilter(img, low_pass_mask);
% Box 掩模
box_mask = ones(3, 3) / 9;
% 高斯掩模
gaussian_mask = fspecial('gaussian', [3 3], 0.5); % 方差为0.5
% 应用 Box 掩模
box_smoothed_img = imfilter(img, box_mask);
% 应用高斯掩模
gaussian_smoothed_img = imfilter(img, gaussian_mask);
% 拉普拉斯掩模
laplacian_mask = [0 -1 0; -1 4 -1; 0 -1 0];
% 应用拉普拉斯掩模
sharpened_img = imfilter(img, laplacian_mask);
% H3 掩模
h3_mask = [-1 -1 -1; -1 8 -1; -1 -1 -1];
% H4 掩模
h4_mask = [1 -2 1; -2 4 -2; 1 -2 1];
% 应用 H3 掩模
h3_sharpened_img = imfilter(img, h3_mask);
% 应用 H4 掩模
h4_sharpened_img = imfilter(img, h4_mask);
% LoG 算子
log_mask = fspecial('log', [3 3], 0.5); % 方差为0.5
% 应用 LoG 算子
log_sharpened_img = imfilter(img, log_mask);
% 显示结果
figure;
subplot(3, 4, 1), imshow(img), title('原图');
subplot(3, 4, 2), imshow(smoothed_img), title('低通掩模平滑图像');
subplot(3, 4, 3), imshow(box_smoothed_img), title('Box 掩模平滑图像');
subplot(3, 4, 4), imshow(gaussian_smoothed_img), title('高斯掩模平滑图像');
subplot(3, 4, 5), imshow(sharpened_img), title('拉普拉斯掩模锐化图像');
subplot(3, 4, 6), imshow(h3_sharpened_img), title('H3 掩模锐化图像');
subplot(3, 4, 7), imshow(h4_sharpened_img), title('H4 掩模锐化图像');
subplot(3, 4, 8), imshow(log_sharpened_img), title('LoG 算子锐化图像');
subplot(3, 4, [9 10 11 12]), imshowpair(img, log_sharpened_img, 'montage'), title('原图与 LoG 算子锐化图像对比');
```
阅读全文