目录
对比度增强是一种提高明暗差异的算法,使亮的更亮,暗的更暗。文章以指数对比度增强为例,介绍其计算公式以及MATLAB的实现。
一.指数对比度增强算法
指数对比度增强以一定阈值为中心,提高阈值以上的亮度,降低阈值以下的亮度。计算公式为:

THRESHOLD为阈值,E为对比度增强的程度,E越大,对暗区的压缩以及亮区的提升就越大,明暗的对比越明显。
以对称灰阶图为例,其指数对比度增强及原图如下所示:

可以看出,经过指数对比度增强后,原图暗的地方更暗,亮的地方更亮了。
二.MATLAB实现
Matlab
clc;
clear all;
E = 5;
image = imread('D:\matlab file\image_constrast\yu.bmp');
image = rgb2gray(image);
image = double(image);
figure('Position', [100,200,1000,800]); %设置figure的大小以及显示位置
subplot(2,3,1);
imshow(uint8(image));
title('原图');
subplot(2,3,4);
imhist(uint8(image));
title('原图的灰度直方图');
[h,w] = size(image);
THRESHOLD1 = h/2;
image1 = zeros(h,w);
for u = 1 : h
for v = 1 : w
image1(u,v) = (1 ./ (1 + (THRESHOLD1./image(u,v)).^E)) * 255; %注意需要将image转为double类型进行计算
end
end
image1 = uint8(image1);
subplot(2,3,2);
imshow(image1);
title('对比增强后的显示');
subplot(2,3,5);
imhist(image1);
title('对比增强的灰度直方图');
下面是经过指数对比度增强,直方均衡后的图像显示效果以及其灰度直方图(关于直方图均衡的MATLAB实现参考前文):

参考自《基于MATLAB与FPGA的图像处理教程》。
内容仅供学习使用,请勿转载。
如有问题,欢迎指正。