MATLAB直方图均衡化并分析代码
时间: 2024-02-18 10:13:32 浏览: 19
MATLAB中的直方图均衡化可以通过使用`histeq`函数来实现。具体的代码如下:
```matlab
% 读入图像
img = imread('image.jpg');
% 将图像转换为灰度图像
gray_img = rgb2gray(img);
% 进行直方图均衡化
eq_img = histeq(gray_img);
% 显示原始图像和均衡化后的图像
subplot(1,2,1);
imshow(gray_img);
title('原始图像');
subplot(1,2,2);
imshow(eq_img);
title('均衡化后的图像');
% 分析均衡化前后的直方图
figure;
subplot(2,1,1);
imhist(gray_img);
title('均衡化前');
subplot(2,1,2);
imhist(eq_img);
title('均衡化后');
```
在这个代码中,我们首先读入一张彩色图像,然后将其转换为灰度图像。接着,我们使用`histeq`函数对灰度图像进行直方图均衡化,并将结果保存在`eq_img`变量中。最后,我们使用`subplot`和`imshow`函数将原始图像和均衡化后的图像显示在同一张图中,方便对比。另外,我们还使用`imhist`函数分别绘制均衡化前后的直方图,以便进行分析。
相关问题
直方图均衡matlab实验结果与分析
下面是一个在MATLAB中进行直方图均衡化的简单示例代码:
```matlab
img = imread('lena.png'); % 读取原始图像
img_gray = rgb2gray(img); % 转换为灰度图像
img_eq = histeq(img_gray); % 进行直方图均衡化
subplot(1,2,1); imshow(img_gray); title('原始图像'); % 显示原始图像
subplot(1,2,2); imshow(img_eq); title('均衡化后的图像'); % 显示均衡化后的图像
```
运行代码后,将会显示原始图像和均衡化后的图像。可以通过比较两幅图像的对比度和清晰度来评估直方图均衡化的效果。
以下是一个示例图像的均衡化结果:
![lena_histeq_result](https://user-images.githubusercontent.com/57687504/128601626-6a50e6b2-1b47-4cc8-9e8c-ee6a9c2f1b81.png)
从上图可以看出,经过直方图均衡化后,图像的对比度和清晰度都有所提高,细节更加明显,整体视觉效果更好。
matalab 直方图均衡化
MATLAB 中的直方图均衡化是一种常用的图像增强技术,可以使图像的对比度增强,从而更容易观察和分析。其基本思想是将图像的像素值进行归一化,使其在整个灰度级范围内分布均匀。实现直方图均衡化的MATLAB函数为"histeq",使用方法如下:
1.读入图像
2.将图像转换为灰度图像
3.使用"histeq"函数对灰度图像进行直方图均衡化
4.显示原始图像和均衡化后的图像
下面是一个简单的示例代码:
```
% 读入图像
img = imread('test.jpg');
% 转换为灰度图像
img_gray = rgb2gray(img);
% 直方图均衡化
img_eq = histeq(img_gray);
% 显示原始图像和均衡化后的图像
subplot(1,2,1),imshow(img_gray),title('原始图像');
subplot(1,2,2),imshow(img_eq),title('均衡化后的图像');
```
这段代码会显示原始图像和均衡化后的图像,可以通过比较两者之间的差异来评估直方图均衡化的效果。需要注意的是,直方图均衡化可能会导致图像过度增强,因此需要根据具体情况进行调整。