图像细节增强(直方图均衡化,对数变换,Gamma变换(校正))
图像细节增强(直方图均衡化,对数变换,Gamma变换(校正))
文章目录
- 一、直方图均衡化
- 1.定义
- 2.原理
- 3.方法步骤
- 二、对数变换
- 1.原理
- 三、Gamma校正
- 1.原理
# 前言
重新梳理图像增强的基础算法,整理之前的笔记。
一、直方图均衡化
1.定义
直方图均衡化(Histogram Equalization)是通过源图像直方图分布变成近似均匀分布,从而增强图像的对比度。
2.原理
直方图均衡化的基本思想是对在原始图像中像素个数多的灰度级进行展宽,而对像素个数少的灰度级进行缩减。从而达到清晰图像的目的。
在真实场景中,暗图像的直方图分量集中在图像像素灰度较低的一端,而亮图像的直方图分量偏向于图像像素灰度较高的一端,如下图
当图像的灰度直方图几乎覆盖整个灰度的取值范围,且除个别像素点的灰度值个数较为突出,整幅图像的灰度值分布近似于均匀分布,因此图像就具有较大的灰度动态范围及较高的对比度,且图像的细节更为丰富。在实际的应用中仅仅依靠输入图像的直方图信息,利用变换函数可以将输入图像直方图信息达到上述效果,该变换的过程为直方图均衡化。
在直方图均衡化过程中,①图像像素无论怎么映射,一定要保证原来的大小关系不变,明亮区域,依旧是较亮的,较暗依旧暗,只是对比度增大,绝对不能明暗颠倒;②如果是八位图像,像素映射函数的值域应在0和255之间的。
累积分布函数是个好的选择,因为累积分布函数是单调增函数(控制大小关系),并且值域是0到1(控制越界问题),所以直方图均衡化中使用的是累积分布函数。
3.方法步骤
二、对数变换
1.原理
对数变换可以拉伸范围较窄的低灰度值,同时压缩范围较宽的高灰度值。用来扩展图像中的暗像素值,同时压缩亮像素值。如公式
S=Clog(1+r)
其中c为常数,r加1可以使函数向左移一个单位,得到的s均大于0。
在傅立叶频谱(幅度谱)的显示。对傅立叶频谱进行对数变化,
如左图中蓝线为变换函数,注意x轴量级为10的7次方,直接被压缩到了0-17.5,效果非常明显。右图是经过对数变换,又经过最大最小值变换后的频谱。
三、Gamma校正
1.原理
Gamma曲线是一种特殊的色调曲线,当Gamma值等于1的时候,曲线为与坐标轴成45°的直线,这个时候表示输入和输出密度相同。高于1的Gamma值将会造成输出亮化,低于1的Gamma值将会造成输出暗化。总之,我们的要求是输入和输出比率尽可能地接近于1。在显示器、扫描仪、打印机等输入、输出设备中这是一个相当常见并且比较重要的概念。在计算机系统中,由于显卡或者显示器的原因会出现实际输出的图像在亮度上有偏差,而Gamma曲线矫正就是通过一定的方法来矫正图像的这种偏差的方法。一般情况下,当用于Gamma矫正的值大于1时,图像的高光部分被压缩而暗调部分被扩展,当Gamma矫正的值小于1时,图像的高光部分被扩展而暗调部分被压缩,Gamma矫正一般用于平滑的扩展暗调的细节
图像细节增强(直方图均衡化,对数变换,Gamma变换(校正))相关推荐
- OpenCV与图像处理学习五——图像滤波与增强:线性、非线性滤波、直方图均衡化与Gamma变换
OpenCV与图像处理学习五--图像滤波与增强:线性.非线性滤波.直方图均衡化与Gamma变换 三.图像滤波与增强 3.1 线性滤波 3.1.1 方框滤波 3.1.2 均值滤波 3.1.3 高斯滤波 ...
- C#+Opencv图像处理01:16位影像转8位、单通道转三通道、彩色影像增强(直方图均衡化、对数变换和伽马变换)
目录 1 读取不同类型的影像 2 转化16位影像为8位影像 3 将单通道影像转化为多通道影像
- 数字图像处理中对数变换与Gamma变换
目录 1.对数变换 2.伽马变换 参考链接: 1.对数变换 图像的对数变换主要的作用是压缩动态范围,原因是对数曲线在像素值较低的区域斜率大,在像素值较高的区域斜率较小,所以图像经过对数变换后,较暗区域 ...
- 直方图均衡化原理与实现
直方图均衡化(Histogram Equalization)是一种增强图像对比度(Image Contrast)的方法,其主要思想是将一副图像的直方图分布变成近似均匀分布,从而增强图像的对比度.直方图 ...
- 图像增强算法汇总(直方图均衡化、拉普拉斯、Log变换、gamma伽马变换)附MATLAB代码
一.图像增强算法介绍 图像增强算法常见于对图像的亮度.对比度.饱和度.色调等进行调节,增加其清晰度,减少噪点等.图像增强往往经过多个算法的组合,完成上述功能,比如图像去燥等同于低通滤波器,增加清晰度则 ...
- Python代码实现图像增强(线性变换、对数变换、幂律变换、分段线性变换、灰度级分层、直方图均衡化、平滑滤波器、锐化滤波器)
1. 线性变换 代码: import cv2 import random import imutils import numpy as np# 彩色图像每个像素值是[x,y,z], 灰度图像每个像素值 ...
- 数字图像学笔记——4. 直方图计算、线性变换、对数变换、Gamma变换
文章目录 灰度直方图(Gray Histogram) 直方图的计算方法 简单的图像转换方法 线性变换 / 图像翻转(Image Nagatives) 对数变换(Log Transformation) ...
- 图像的常用灰度变换——负片、伽马变换、对数变换、直方图均衡化、自适应灰度变换及其MATLAB实现
灰度变换是图像预处理的重要手段,常见的变换方法如下,图文并茂和大家一起学习: %% 尝试灰度变换--伽马变换和对数变换.直方图均衡化clc,clear,close allf = imread('C:\ ...
- python opencv 常用增强 dct变换+侵蚀+扩张+索贝尔算子+直方图均衡化+光照平衡+
裁剪操作 img=img[100:200,:,:] 通道置零 img[:,:,2]=0 侵蚀 扩张 frame = cv2.erode(frame, kernel=np.ones((5, 5))) # ...
最新文章
- 黄聪:TortoiseGit(乌龟git)保存用户名密码的方法
- C++实现数组中求第K大数
- Oracle 默认时间格式 Date格式转换
- 51Nod - 1035 最长的循环节
- 从5随机到7随机及其扩展
- mysql time_limit_mysql ---- limit使用方式
- Merge Two Sorted Lists leetcode java
- Linux的Qt编译出现:-1: error: cannot find -lGL问题的解决方法
- pycharm+anaconda编译器运行程序时一直显示“ImportError: DLL load failed: 找不到指定的模块”的解决办法
- 共建智慧云基石,阿里云携手英特尔走向数智未来
- 谈360下拉词360下拉框的优势及360搜索推广方法有哪些?
- 为什么java IO类不用基于继承的设计方案?
- 微云笔记控制脚本实例:远程控制脚本开关
- 诺基亚Ovi商店开卖《水果忍者》
- 使用Qt学习C语言编程2(加入工具链)
- 阿里云科学家入选计算机顶会HPCA名人堂,他是什么来头?
- Linux命令行下载大文件,下载Onedrive文件
- trs ids身份服务器系统实现统一身份认证与单点登录平台技术,统一身份认证系统设计与实现...
- jquery给日期赋值_关于jQuery赋值
- 饿了么UI图片上传的实现
热门文章
- 遗传算法优化BP神经网络在非线性函数拟合中的应用
- Windows XP快捷键大全
- 楼天城 理想不死:若知为何而生,遂可纳受一切
- 计算机行业未来就业前景在哪?哪些语言还在吃香?
- ssm报错:No qualifying bean of type ‘com.hr.service.LoginService‘ available
- mysql creat datebase_MySQL CREATE DATABASE
- 在桌面上离线编辑Office Web Apps文档
- 2011年度中国地区安全威胁大事记
- 传说中的“高温补贴”
- 动手写一个抖音首页的效果