写一个matlab基于直方图均衡、对比度受限的直方图均衡图像增强算法
时间: 2024-01-13 16:05:48 浏览: 110
基于直方图均衡化的图像增强
5星 · 资源好评率100%
好的,下面是基于直方图均衡、对比度受限的直方图均衡图像增强算法的MATLAB代码:
```matlab
function [enhanced_image] = hist_eq_clahe(image, clip_limit, tile_size)
% image: 原始图像
% clip_limit: 对比度受限的直方图均衡中的裁剪阈值
% tile_size: 对比度受限的直方图均衡中的块大小
% 将图像转换为灰度图像
if size(image, 3) == 3
image = rgb2gray(image);
end
% 直方图均衡
hist_eq_image = histeq(image);
% 对比度受限的直方图均衡
clahe_image = adapthisteq(image, 'ClipLimit', clip_limit, 'NumTiles', ...
[floor(size(image, 1)/tile_size), floor(size(image, 2)/tile_size)], ...
'TileSize', [tile_size, tile_size]);
% 将两种增强方法的结果加权融合(权重分别为0.5)
enhanced_image = 0.5 * hist_eq_image + 0.5 * clahe_image;
% 显示增强后的图像
imshow(enhanced_image);
end
```
这个函数接受三个参数:原始图像、对比度受限的直方图均衡中的裁剪阈值和块大小。函数首先将原始图像转换为灰度图像,然后对其进行直方图均衡和对比度受限的直方图均衡。最后,将两种增强方法的结果加权融合,并显示增强后的图像。
你可以调整clip_limit和tile_size参数来控制对比度受限的直方图均衡的效果。
阅读全文