对比度增强(二):直方图正规划与伽马变换 cv.normal()函数使用及原理
直方图正规化:
图像为I,宽为W,高为H,I(r,c)代表I的第r行第c列的灰度值;输出图像记为O,为使得输出图像的灰度值在[Omin,Omax]范围里,可用如下公式:
(1)
(2)
其中0≤r<H,0≤c<W。公式(1)是一个比列关系,变换后可为公式(2),即可求输出图像O(r,c)。
而Imin与Omin对应,此点(Imin,Omin)在线性方程上,则斜率:

将 (Imin,Omin)带入线性方程中, b值:

该方程变成: 
最终可为: 
正规化自己编写与使用normalize函数代码如下:
normalize函数代码:
import numpy as np
import cv2 as cv src=np.array([[1,2,3],[4,5,6]])
b=np.zeros((2,3))
# c=cv.normalize(src,dst=b,alpha=4,beta=0,norm_type=cv.NORM_L1) # L1范数
# c=cv.normalize(src,dst=b,alpha=4,beta=0,norm_type=cv.NORM_L2) # L2范数
# c=cv.normalize(src,dst=b,alpha=4,beta=0,norm_type=cv.NORM_INF) # 无穷范数
c=cv.normalize(src,b,20,255,norm_type=cv.NORM_MINMAX)
print('c=',c) 自己编写代码:
# 原始图像
IMAX=np.max(src)
IMIN=np.min(src)
OMIN,OMAX=20,255
A=float(OMAX-OMIN)/(IMAX-IMIN)
B=OMIN-A*IMIN
O=A*src+B
print('O=',O)
其验证结果,如下:

L1范数:图像矩阵中值的绝对值的和(L1)
L2范数:图像矩阵中值的平方和的开发(L2)
无穷范数:图像矩阵中值的绝对值的最大值(L3)
求得值简称:L
所有公式可表示:

对应代码:dst=cv.normalize(src,dst,alpha=1,beta=0,norm_type=cv.NORM_L1)
伽马变换:
0≤r<H,0≤c<W
当
=1时,图像不变。如果图像整体或者感兴趣区域较暗,则令0<
<1可以增加图像对比度;相反,如果图像整体或者感兴趣区域较亮,则
>1可以降低图像对比度。
对比度增强(二):直方图正规划与伽马变换 cv.normal()函数使用及原理的更多相关文章
- 图像增强算法(直方图均衡化、拉普拉斯、Log、伽马变换)
一.图像增强算法原理 图像增强算法常见于对图像的亮度.对比度.饱和度.色调等进行调节,增加其清晰度,减少噪点等.图像增强往往经过多个算法的组合,完成上述功能,比如图像去燥等同于低通滤波器,增加清晰度则 ...
- 基础图像处理之混合空间增强——(Java:拉普拉斯锐化、Sobel边缘检测、均值滤波、伽马变换)
相信看过冈萨雷斯第三版数字图像处理的童鞋都知道,里面涉及到了很多的基础图像处理的算法,今天,就专门借用其中一个混合空间增强的案例,来将常见的几种图像处理算法集合起来,看能发生什么样的化学反应 首先,通 ...
- 伽马变换(一些基本的灰度变换函数)基本原理及Python实现
1. 基本原理 变换形式 $$s=cr^{\gamma}$$ c与$\gamma$均为常数 可通过调整$\gamma$来调整该变换,最常用于伽马校正与对比度增强 2. 测试结果 图源自skimage ...
- OpenCV计算机视觉学习(3)——图像灰度线性变换与非线性变换(对数变换,伽马变换)
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 下面 ...
- C++数字图像处理(1)-伽马变换
https://blog.csdn.net/huqiang_823/article/details/80767019 1.算法原理 伽马变换(幂律变换)是常用的灰度变换,是一种简单的图像增强算法 ...
- (二)OpenCV-Python学习—对比度增强
·对于部分图像,会出现整体较暗或较亮的情况,这是由于图片的灰度值范围较小,即对比度低.实际应用中,通过绘制图片的灰度直方图,可以很明显的判断图片的灰度值分布,区分其对比度高低.对于对比度较低的图片,可 ...
- opencv----彩色图像对比度增强
图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法. 直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法. 直方图拉伸是通过对比度拉伸对直方图进行调整,从而“ ...
- SSE图像算法优化系列十九:一种局部Gamma校正对比度增强算法及其SSE优化。
这是一篇2010年比较古老的文章了,是在QQ群里一位群友提到的,无聊下载看了下,其实也没有啥高深的理论,抽空实现了下,虽然不高大上,还是花了点时间和心思优化了代码,既然这样,就顺便分享下优化的思路和经 ...
- ISP图像调试工程师——对比度增强(熟悉图像预处理和后处理技术)
经典对比度增强算法: http://blog.csdn.net/ebowtang/article/details/38236441
随机推荐
- Windows C盘扩容
工具:大白菜pe1.将F盘数据拷贝放其他盘,并格式化F盘.2.进入大白菜PE,使用DiskGenius工具,右键C盘图示->扩容->C盘,继续其他操作.(其中,需将F盘释放为未使用,然后将 ...
- 搭建代理服务器时的笔记,request使用笔记
request 请求笔记: 1.opation中使用form字段传参 对应 content-type': 'application/x-www-form-urlencoded',如果想要content ...
- Navicat Premium永久激活方式
今天安装完Navicat Premium,运行时出现只能用14天的信息,所以就比较生气,只能用14天,那我还下你干啥,所以就查教程,弄了个破解工具,最后大功告成,应该是可以永久使用了,具体的教程看下 ...
- 学习Spring-Data-Jpa(九)---注解式方法查询之@NamedQuery、@NamedNativeQuery
1.@NamedQuery.@NamedNativeQuery @NamedQuery与@NamedNativeQuery都是定义查询的一种形式,@NamedQuery使用的是JPQL,而@Named ...
- CanvasRenderingContext2D.fillText(text, x, y [, maxWidth]);
CanvasRenderingContext2D.fillText(text, x, y [, maxWidth]); [, maxWidth]的意思是,方括号代表可有可无,有fillText(tex ...
- sqlyog 下载
https://www.cnblogs.com/givemelove/p/7777975.html
- C++ CGI报“资源访问错误”问题分析
一线上CGI偶发性会报“资源访问错误”,经过分析得出是因为CgiHost没有读取到CGI的任务输出,即CGI运行完成后连HTTP头都没有一点输出. 然而实际上,不可能没有任何输出,因为CGI至少有无条 ...
- helm repository 相关
chart repo是一个可用来存储index.yaml与打包的chart文件的HTTP server.当要分享chart时,需要上传chart文件到chart仓库,任何一个能够提供yaml与tar文 ...
- 记忆的轮廓 期望 四边形不等式dp|题解
记忆的轮廓 题目描述 通往贤者之塔的路上,有许多的危机.我们可以把这个地形看做是一颗树,根节点编号为1,目标节点编号为n,其中1-n的简单路径上,编号依次递增,在[1,n]中,一共有n个节点.我们把编 ...
- vscode配合less的编译
1.安装Easy LESS插件 2.打开settings.json,添加以下代码: "less.compile": { "sourceMap": true, & ...