图像增强算法:对比度增强算法以及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的图像处理教程》。

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

如有问题,欢迎指正。

相关推荐
海的透彻22 分钟前
dockerfile如何快速构建容器(java服务)
java·开发语言
code2cat35 分钟前
Java工具篇之Gradle:用任务图组织构建与交付
java·开发语言·单元测试·gradle
北京中科新远科技40 分钟前
高速交换机端口预算怎么做?下行、上联、拆分和冗余计算框架
开发语言·php
xiaoye-duck1 小时前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(下):流式响应实现和测试
开发语言·网络·c++·语言模型
AI源码2 小时前
基于 Python 的短视频用户行为分析系统
开发语言·python
原子延迟2 小时前
批量压缩视频会变大?HandBrake等3款(2026)
图像处理·人工智能·计算机视觉·音视频
旖旎夜光2 小时前
【C++ 基础入门】类和对象(上):封装、对象模型与 this 指针
开发语言·c++·笔记·学习
揽星河..3 小时前
【C语言】结构体
c语言·开发语言
2601_966949653 小时前
如何封装 qd.klines.batch(),让批量 K 线查询函数在多个策略中复用?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
分享资料4 小时前
MATLAB 中分号 (;)的作用
matlab