MATLAB批量直方图均衡化
时间: 2023-10-17 17:15:33 浏览: 101
MATLAB中可以使用imhist函数对图像进行直方图均衡化,可以使用imread函数读入图像,然后使用imhist函数生成图像的直方图,最后使用histeq函数对直方图进行均衡化。以下是示例代码:
```
% 读入图像
img = imread('image.jpg');
% 生成直方图
hist = imhist(img);
% 进行直方图均衡化
img_eq = histeq(img);
```
如果要批量处理多张图像,可以使用循环结构。例如,将所有jpg格式的图像进行批量直方图均衡化,可以使用如下代码:
```
% 获取所有jpg格式的图像文件名
dir_list = dir('*.jpg');
% 循环处理每张图像
for i = 1:length(dir_list)
% 读入图像
img = imread(dir_list(i).name);
% 进行直方图均衡化
img_eq = histeq(img);
% 保存新图像
imwrite(img_eq, ['eq_', dir_list(i).name]);
end
```
相关问题
批量自适应直方图均衡化图像增强matlab
以下是批量自适应直方图均衡化图像增强的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
```
阅读全文
相关推荐
















