lee滤波程序matlab
时间: 2023-06-01 17:04:30 浏览: 85
以下是MATLAB中的Lee滤波程序:
function img_filtered = lee_filter(img, window_size)
% 将图像转换为双精度浮点数
img = im2double(img);
% 计算滑动窗口大小
half_w = (window_size - 1) / 2;
% 为输出图像分配空间
img_filtered = zeros(size(img));
% 遍历图像中的每个像素
for i = 1:size(img, 1)
for j = 1:size(img, 2)
% 计算当前像素周围的像素值
iMin = max(i - half_w, 1);
iMax = min(i + half_w, size(img,1));
jMin = max(j - half_w, 1);
jMax = min(j + half_w, size(img,2));
window = img(iMin:iMax, jMin:jMax);
% 计算均值和标准差
mean_val = mean(window(:));
std_val = std(window(:));
% 计算滤波器系数
a = std_val^2 / (mean_val^2 + std_val^2);
% 应用滤波器
img_filtered(i,j) = mean_val + a * (img(i,j) - mean_val);
end
end
% 将输出图像转换为8位无符号整数
img_filtered = im2uint8(img_filtered);
end
使用方法:
img = imread('lena.png');
img_filtered = lee_filter(img, 5);
imshow(img_filtered);
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)