直方图正规化:

图像为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()函数使用及原理的更多相关文章

  1. 图像增强算法(直方图均衡化、拉普拉斯、Log、伽马变换)

    一.图像增强算法原理 图像增强算法常见于对图像的亮度.对比度.饱和度.色调等进行调节,增加其清晰度,减少噪点等.图像增强往往经过多个算法的组合,完成上述功能,比如图像去燥等同于低通滤波器,增加清晰度则 ...

  2. 基础图像处理之混合空间增强——(Java:拉普拉斯锐化、Sobel边缘检测、均值滤波、伽马变换)

    相信看过冈萨雷斯第三版数字图像处理的童鞋都知道,里面涉及到了很多的基础图像处理的算法,今天,就专门借用其中一个混合空间增强的案例,来将常见的几种图像处理算法集合起来,看能发生什么样的化学反应 首先,通 ...

  3. 伽马变换(一些基本的灰度变换函数)基本原理及Python实现

    1. 基本原理 变换形式 $$s=cr^{\gamma}$$ c与$\gamma$均为常数 可通过调整$\gamma$来调整该变换,最常用于伽马校正与对比度增强 2. 测试结果 图源自skimage ...

  4. OpenCV计算机视觉学习(3)——图像灰度线性变换与非线性变换(对数变换,伽马变换)

    如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 下面 ...

  5. C++数字图像处理(1)-伽马变换

    https://blog.csdn.net/huqiang_823/article/details/80767019 1.算法原理    伽马变换(幂律变换)是常用的灰度变换,是一种简单的图像增强算法 ...

  6. (二)OpenCV-Python学习—对比度增强

    ·对于部分图像,会出现整体较暗或较亮的情况,这是由于图片的灰度值范围较小,即对比度低.实际应用中,通过绘制图片的灰度直方图,可以很明显的判断图片的灰度值分布,区分其对比度高低.对于对比度较低的图片,可 ...

  7. opencv----彩色图像对比度增强

    图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法. 直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法. 直方图拉伸是通过对比度拉伸对直方图进行调整,从而“ ...

  8. SSE图像算法优化系列十九:一种局部Gamma校正对比度增强算法及其SSE优化。

    这是一篇2010年比较古老的文章了,是在QQ群里一位群友提到的,无聊下载看了下,其实也没有啥高深的理论,抽空实现了下,虽然不高大上,还是花了点时间和心思优化了代码,既然这样,就顺便分享下优化的思路和经 ...

  9. ISP图像调试工程师——对比度增强(熟悉图像预处理和后处理技术)

    经典对比度增强算法: http://blog.csdn.net/ebowtang/article/details/38236441

随机推荐

  1. iview admin动态路由实现

    参考 https://blog.csdn.net/weixin_41538490/article/details/93749942

  2. 在eclipse中打jar包

    在Eclipse中打jar包 步骤: 1. 在项目名称中点击右键,点Export... 2.选择java-->Java File, next 3. 选择你打算打包的文件.可以选择某几个文件,也可 ...

  3. gnome3 调整标题栏高度

    适用于:gtk 3.20 + 1. 在用户主目录 -/.config/gtk3.0/ 下新建gtk.css文件: 2. 复制如下css值: headerbar.default-decoration { ...

  4. 洛谷[SHOI2002]滑雪题解

    什么破题啊 简直就是浪费我时间! 我每天还被我xf定目标了不知道嘛! 题目 朴素的搜索只能得90分 #include <cstdio> #include <iostream> ...

  5. 第10组 Beta冲刺(2/4)

    队名:凹凸曼 组长博客 作业博客 组员实践情况 童景霖 过去两天完成了哪些任务 文字/口头描述 编写商品主界面 展示GitHub当日代码/文档签入记录 暂无代码 接下来的计划 编写购买功能 还剩下哪些 ...

  6. Rattle

    Rattle使用RGtk2 包提供的Gnome图形用户界面,可以在WINDOWS,MAC OS/X,Linux等多个系统中使用. Rattle基于大量的R包:RGtk2, pmml, colorspa ...

  7. Linux安装vim,解决vim: command not found

    1,输入rpm -qa|grep vim 命令, 如果 vim 已经正确安裝,会返回下面的三行代码: root@server1 [~]# rpm -qa|grep vim vim-enhanced-7 ...

  8. leetcode 763. 划分字母区间

    题目描述: 字符串 S 由小写字母组成.我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段.返回一个表示每个字符串片段的长度的列表. 示例 1: 输入: S = "a ...

  9. python发展

    python的创始人---吉多·范罗苏姆(Guido van Rossum)

  10. python数据分析5 数据转换

    1数据转换 数据转换时数据准备的重要环节,它通过数据平滑,数据聚集,数据概化,规范化等凡是将数据转换成适用于数据挖掘的形式 1.1 数据平滑 去除数据中的噪声,将连续数据离散化.这里可以采用分箱.聚类 ...