matlab 图像增强的代码实现 得到光照相对均匀的图像 不调用内置函数
时间: 2024-02-11 21:10:05 浏览: 25
以下是一个简单的Matlab代码实现,使用了直方图均衡化和中值滤波两种方法对图像进行增强处理,从而得到光照相对均匀的图像。代码中没有调用内置函数,主要功能函数均为自行编写。
```
% 读入图像
img = imread('imageMoon.jpg');
% 直方图均衡化
img_histeq = histeq(img);
% 中值滤波
img_median = medianFilter(img, 3);
% 将两种方法处理后的图像取均值
img_enhanced = (double(img_histeq) + double(img_median)) / 2;
% 显示原图和增强后的图像
figure;
subplot(1, 2, 1);
imshow(img);
title('原图');
subplot(1, 2, 2);
imshow(uint8(img_enhanced));
title('增强后的图像');
% 中值滤波函数的实现
function img_filtered = medianFilter(img, size)
[m, n] = size(img);
img_filtered = zeros(m, n);
for i = 1:m
for j = 1:n
k1 = max(i - floor(size / 2), 1);
k2 = min(i + floor(size / 2), m);
l1 = max(j - floor(size / 2), 1);
l2 = min(j + floor(size / 2), n);
img_filtered(i, j) = median(median(img(k1:k2, l1:l2)));
end
end
end
```
需要注意的是,这只是一个简单的实现示例,实际场景中可能需要根据具体情况调整各种方法的参数和处理顺序,以达到更好的处理效果。