批量自适应直方图均衡化图像增强matlab
时间: 2023-05-30 10:03:29 浏览: 187
以下是批量自适应直方图均衡化图像增强的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
可以使用Matlab中的"adapthisteq"函数来实现批量对彩色图像进行自适应直方图均衡化。
首先,需要将所有的彩色图像读入Matlab中,可以使用"imread"函数实现:
```
img_folder = 'img_path'; % 图像文件夹路径
file_list = dir([img_folder, '\*.jpg']); % 获取文件夹中所有jpg文件
num_files = length(file_list); % 图像文件数量
for i = 1:num_files
file_name = [img_folder, '\', file_list(i).name]; % 获取当前图像文件名
img = imread(file_name); % 读取图像
% 在这里进行自适应直方图均衡化操作
end
```
然后,对于每个读入的彩色图像,可以使用"adapthisteq"函数进行自适应直方图均衡化操作。需要注意的是,"adapthisteq"函数只能处理灰度图像,因此需要将彩色图像转换为灰度图像。可以使用"rgb2gray"函数实现:
```
gray_img = rgb2gray(img); % 将彩色图像转换为灰度图像
eq_img = adapthisteq(gray_img); % 进行自适应直方图均衡化操作
```
最后,将处理后的灰度图像转换回彩色图像,并保存到指定文件夹中。可以使用"imwrite"函数实现:
```
color_eq_img = cat(3, eq_img, eq_img, eq_img); % 将灰度图像转换为彩色图像
save_name = ['save_path\', file_list(i).name]; % 保存文件名
imwrite(color_eq_img, save_name); % 保存图像
```
将上述代码整合起来,就可以实现批量对彩色图像进行自适应直方图均衡化的操作:
```
img_folder = 'img_path'; % 图像文件夹路径
file_list = dir([img_folder, '\*.jpg']); % 获取文件夹中所有jpg文件
num_files = length(file_list); % 图像文件数量
for i = 1:num_files
file_name = [img_folder, '\', file_list(i).name]; % 获取当前图像文件名
img = imread(file_name); % 读取图像
gray_img = rgb2gray(img); % 将彩色图像转换为灰度图像
eq_img = adapthisteq(gray_img); % 进行自适应直方图均衡化操作
color_eq_img = cat(3, eq_img, eq_img, eq_img); % 将灰度图像转换为彩色图像
save_name = ['save_path\', file_list(i).name]; % 保存文件名
imwrite(color_eq_img, save_name); % 保存图像
end
```
阅读全文