📜  如何在 MATLAB 中对彩色图像进行对比度增强?(1)

📅  最后修改于: 2023-12-03 15:24:17.101000             🧑  作者: Mango

如何在 MATLAB 中对彩色图像进行对比度增强?

在 MATLAB 中对彩色图像进行对比度增强可以采用以下步骤:

1. 读取彩色图像

Matlab中可以通过imread函数读取图像。

img = imread('test.jpg');
2. 将彩色图像转为灰度图像

在做对比度增强之前,需要将彩色图像转为灰度图像。Matlab中可以用rgb2gray函数实现。

gray_img = rgb2gray(img);
3. 计算灰度图像的直方图

对比度增强的目的是使图像的对比度较高,这需要通过调整图像的亮度和对比度来实现。图像的亮度和对比度可以通过分析直方图来确定。在Matlab中可以用imhist函数计算图像的直方图。

hist = imhist(gray_img);
4. 计算直方图均衡化函数

通过直方图均衡化函数可以将灰度图像的直方图变形,使每个灰度级出现的概率均等,从而实现亮度和对比度的调整。在Matlab中可以用histeq函数实现直方图均衡化。

eq_img = histeq(gray_img);
5. 将增强后的灰度图像转为彩色图像

将灰度图像转为彩色图像的过程可以通过再次使用rgb2gray函数实现。

color_img = cat(3,eq_img,eq_img,eq_img);
6. 显示增强前后的图像

可以使用subplotimshow函数分别显示原始图像和增强后的图像。

subplot(1,2,1);
imshow(img);
title('Original image');
subplot(1,2,2);
imshow(color_img);
title('Enhanced image');

完整代码如下:

img = imread('test.jpg');
gray_img = rgb2gray(img);
hist = imhist(gray_img);
eq_img = histeq(gray_img);
color_img = cat(3,eq_img,eq_img,eq_img);

subplot(1,2,1);
imshow(img);
title('Original image');
subplot(1,2,2);
imshow(color_img);
title('Enhanced image');

以上就是在MATLAB中对彩色图像进行对比度增强的方法,通过调整直方图均衡化函数,我们可以实现亮度和对比度的调整。