图像增强算法:对比度增强算法以及MATLAB实现

目录

一.指数对比度增强算法

二.MATLAB实现


对比度增强是一种提高明暗差异的算法,使亮的更亮,暗的更暗。文章以指数对比度增强为例,介绍其计算公式以及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的图像处理教程》。

内容仅供学习使用,请勿转载。

如有问题,欢迎指正。

相关推荐
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车3 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁3 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
孙启超3 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int3 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
CoderYanger3 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
伞伞悦读3 天前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json
CCCCCCCCharlie3 天前
Linux进程控制四大核心操作
linux·开发语言
Brilliantwxx3 天前
【STM32】 SPI Flash 驱动开发实战:阻塞模式驱动 W25Q64(含工程代码)
开发语言·stm32·单片机·嵌入式硬件