自适应直方图均衡化的MATLAB代码
时间: 2023-09-21 22:11:19 浏览: 61
以下是自适应直方图均衡化的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'参数指定了直方图均衡化时使用的分布类型。
相关问题
如何实现基于Lab模型的有限对比自适应直方图均衡化 matlab代码
以下是基于Lab模型的有限对比自适应直方图均衡化的MATLAB代码:
```matlab
% 读入图像
img = imread('lena.png');
% 将RGB图像转换到Lab颜色空间
lab_img = rgb2lab(img);
% 定义块大小和限制对比度因子
block_size = 16; % 块大小
clip_limit = 0.01; % 限制对比度因子
% 计算图像大小
[rows, cols, ~] = size(lab_img);
% 计算每个块的数量
num_blocks_row = ceil(rows/block_size);
num_blocks_col = ceil(cols/block_size);
% 初始化输出图像
out_img = zeros(size(lab_img));
% 循环遍历每个块并进行CLAHE处理
for i = 1:num_blocks_row
for j = 1:num_blocks_col
% 计算当前块的位置
row_start = (i-1)*block_size+1;
row_end = min(i*block_size, rows);
col_start = (j-1)*block_size+1;
col_end = min(j*block_size, cols);
% 获取当前块
block = lab_img(row_start:row_end, col_start:col_end, :);
% 将当前块转换为灰度图像
gray_block = block(:,:,1);
% 对当前块进行有限对比自适应直方图均衡化
eq_block = adapthisteq(gray_block, 'ClipLimit', clip_limit, 'NumTiles', [8 8]);
% 将均衡化的块复制回输出图像中
out_img(row_start:row_end, col_start:col_end, 1) = eq_block;
out_img(row_start:row_end, col_start:col_end, 2:3) = block(:,:,2:3);
end
end
% 将输出图像转换回RGB颜色空间
out_img = lab2rgb(out_img);
% 显示原图和处理后的图像
figure;
subplot(1,2,1);
imshow(img);
title('Original Image');
subplot(1,2,2);
imshow(out_img);
title('CLAHE with Lab Color Space');
```
请注意,以上代码仅演示了如何使用有限对比自适应直方图均衡化(CLAHE)处理基于Lab颜色空间的图像。如果需要使用其他颜色空间或自定义算法,则需要进行相应的更改。
自适应直方图均衡化matlab
以下是MATLAB中自适应直方图均衡化的示例代码:
1. 加载图像:
img = imread('lena.jpg');
2. 定义均衡化的窗口大小和限制对比度增强的参数:
winSize = 31; % 窗口大小
limitContrast = 0.01; % 限制对比度增强的参数
3. 对图像进行自适应直方图均衡化:
adapthisteqImg = adapthisteq(img,'NumTiles',[winSize winSize],'ClipLimit',limitContrast);
4. 显示原图和均衡化后的图像:
subplot(1,2,1); imshow(img); title('Original Image');
subplot(1,2,2); imshow(adapthisteqImg); title('Adaptive Histogram Equalization Image');
以上代码将在MATLAB中加载一张名为"lena.jpg"的图像,然后对其进行自适应直方图均衡化。窗口大小为31,限制对比度增强的参数为0.01。最后,代码将原图和均衡化后的图像显示在同一幅图中。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)