批量自适应直方图均衡化图像增强matlab
时间: 2023-05-30 16:03:29 浏览: 109
以下是批量自适应直方图均衡化图像增强的matlab代码:
```matlab
% 批量读取所有图片
fileList = dir('*.jpg');
numFiles = length(fileList);
for i = 1:numFiles
% 读取图片
img = imread(fileList(i).name);
% 进行自适应直方图均衡化增强
img_eq = adapthisteq(img);
% 显示原图和增强后的图像
subplot(1,2,1);
imshow(img);
title('Original Image');
subplot(1,2,2);
imshow(img_eq);
title('Enhanced Image');
% 保存增强后的图像
imwrite(img_eq, ['enhanced_' fileList(i).name]);
end
```
这段代码假定所有要增强的图像都在当前目录下,并且以.jpg格式保存。代码首先使用dir函数获取当前目录下所有以.jpg结尾的文件,然后使用一个循环依次读取每个文件。对于每个文件,调用adapthisteq函数进行自适应直方图均衡化增强,并使用subplot函数显示原图和增强后的图像。最后,使用imwrite函数将增强后的图像保存到磁盘上。
相关问题
自适应直方图均衡化算法matlab
自适应直方图均衡化(Adaptive Histogram Equalization)是一种图像增强的方法,可以提高图像的对比度和细节。在MATLAB中,可以使用adapthisteq函数来实现自适应直方图均衡化。
以下是一个简单的示例代码:
```matlab
% 读取图像
I = imread('image.jpg');
% 自适应直方图均衡化
J = adapthisteq(I);
% 显示原始图像和增强后的图像
subplot(1,2,1), imshow(I), title('Original Image');
subplot(1,2,2), imshow(J), title('Enhanced Image');
```
在这个示例中,我们首先使用imread函数读取一个图像,然后使用adapthisteq函数进行自适应直方图均衡化。最后,我们使用subplot和imshow函数来显示原始图像和增强后的图像。
需要注意的是,adapthisteq函数可以接受一个用于调整均衡化强度的可选参数。如果未指定此参数,则默认为0.01。可以通过以下方式指定参数的值:
```matlab
J = adapthisteq(I, 'NumTiles', [m n], 'ClipLimit', p);
```
其中,m和n是用于分割图像的瓷砖数量,p是用于限制像素值增强程度的阈值。可以根据需要调整这些参数,以获得最佳的增强效果。
自适应直方图均衡化的MATLAB代码
以下是自适应直方图均衡化的MATLAB代码:
```
function adaptive_histogram_equalization()
clc; close all; clear all;
% 读取图像
I = imread('lena.png');
% 将灰度图像转化为双精度类型
I = im2double(I);
% 自适应直方图均衡化
J = adapthisteq(I,'ClipLimit',0.02,'Distribution','rayleigh');
% 显示原始图像和处理后的图像
subplot(1,2,1),imshow(I),title('Original Image');
subplot(1,2,2),imshow(J),title('Adaptive Histogram Equalization');
end
```
其中,'ClipLimit'参数指定了直方图均衡化时限制每个小块内直方图的峰值,'Distribution'参数指定了直方图均衡化时使用的分布类型。