自己编写的matlab代码图像匀速模糊
时间: 2023-04-22 17:02:48 浏览: 63
好的,以下是自己编写的matlab代码图像匀速模糊:
```matlab
function [blurred_img] = uniform_blur(img, kernel_size)
% img: 待模糊的图像
% kernel_size: 模糊核的大小
% 获取图像的尺寸
[height, width, ~] = size(img);
% 初始化模糊核
kernel = ones(kernel_size) / kernel_size^2;
% 对图像进行边缘填充
padding_size = floor(kernel_size / 2);
padded_img = padarray(img, [padding_size, padding_size], 'replicate');
% 初始化模糊后的图像
blurred_img = zeros(height, width, 3);
% 对每个像素进行模糊处理
for i = 1:height
for j = 1:width
% 获取当前像素所在的区域
region = padded_img(i:i+kernel_size-1, j:j+kernel_size-1, :);
% 计算当前像素的模糊值
blurred_value = sum(sum(region .* kernel));
% 将模糊值赋给模糊后的图像
blurred_img(i, j, :) = blurred_value;
end
end
% 将模糊后的图像转换为uint8类型
blurred_img = uint8(blurred_img);
end
```
使用方法:
```matlab
% 读取图像
img = imread('test.jpg');
% 进行匀速模糊
blurred_img = uniform_blur(img, 5);
% 显示原图和模糊后的图像
figure;
subplot(1, 2, 1);
imshow(img);
title('Original Image');
subplot(1, 2, 2);
imshow(blurred_img);
title('Blurred Image');
```
其中,`img`为待模糊的图像,`kernel_size`为模糊核的大小,可以根据需要进行调整。函数返回值为模糊后的图像。