目录

1. 介绍

2. 代码实现

3. 提升视频的亮度


1. 介绍

伽马变换主要目的是对比度拉伸,将图像灰度较低的部分进行修正

伽马变换针对的是对单个像素点的变换,也就是点对点的映射

形式为:

其中,s为输出的像素点的灰度值,r为输入像素点的灰度值。c 、 γ 为常数

γ 值不同的时候,对应的变换曲线如图,这里我们不关注具体函数的取值,而只是关注变换曲线的形状

通过观察可以发现

  • γ > 1 的时候,会压缩暗区的对比度,抬高亮区的对比度。并且γ越大,效果越明显
  • γ < 1 的时候,会提升暗区的对比度,压缩亮区的对比度。并且γ越小,效果越明显
  • γ = 1 的时候,图像的灰度不变(c 也为1)

2. 代码实现

import cv2
import numpy as npdef grammar(x, r):y = pow(x / 255 , r) * 255return y.astype(np.uint8)img  = cv2.imread('./f.jpg',0)
img_grammar = grammar(img,0.6)
cv2.imshow('img',np.hstack((img,img_grammar)))
cv2.waitKey()
cv2.destroyAllWindows()

原图和 γ = 0.6 的效果

这里需要进行归一化处理,因为整数的小数次方可能会丢失精度,我们将灰度值变为(0,1)之间,转换成小数与小数的次方会更加准确。

3. 提升视频的亮度

import numpy as np
import cv2def grammar(x , r):   #  grammar 变换y = pow(x / 255 , r) * 255return y.astype(np.uint8)video = cv2.VideoCapture('./hand.mp4')   # 读取视频
while video.isOpened():        # 如果视频/摄像头 读取成功ret,frame = video.read()    # 读取每一帧img = grammar(frame,0.6)    # 将每一帧进行进行grammar变换if ret == True :           # 读取到frame的话cv2.imshow('img',np.hstack((frame,img)))key=cv2.waitKey(1)if key == ord('q'):        # q 退出breakif key == 32:              # 空格键 暂停cv2.waitKey(0)continuevideo.release()
cv2.destroyAllWindows()

视频效果:

灰度变换 - 伽马变换相关推荐

  1. 图像的常用灰度变换——负片、伽马变换、对数变换、直方图均衡化、自适应灰度变换及其MATLAB实现

    灰度变换是图像预处理的重要手段,常见的变换方法如下,图文并茂和大家一起学习: %% 尝试灰度变换--伽马变换和对数变换.直方图均衡化clc,clear,close allf = imread('C:\ ...

  2. 【OpenCV 例程200篇】44. 图像的灰度变换(伽马变换)

    [OpenCV 例程200篇]44. 图像的灰度变换(伽马变换) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 线性 ...

  3. 数字图像处理(18): 图像灰度变换——线性灰度变换 和 非线性灰度变换(对数变换 与 伽马变换)

    目录 1 灰度变换简介 2 线性灰度变换­-图像反转 3 非线性灰度变换 3.1 对数变换 3.2 伽马变换 参考资料 1 灰度变换简介 灰度变换是图像增强的一种重要手段,用于改善图像显示效果,属于空 ...

  4. 数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换、对数变换、伽马变换和分段线性变换)

    数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换.对数变换.伽马变换和分段线性变换) 空间域处理是直接对像素进行操作的方法,这是相对于频率域处理而言的.空间域处理主要分为两大类:灰度变换 ...

  5. [数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割

    灰度变换,属于一个非常重要的概念.这里主要参考<Digital Image Processing> Rafael C. Gonzalez / Richard E. Woods 的第三章.书 ...

  6. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波3 -幂律变换、伽马变换

    目录 幂律(伽马)变换 幂律(伽马)变换 s=crγ(3.5)s = c r^{\gamma} \tag{3.5}s=crγ(3.5) c和γc和\gammac和γ是正常数.考虑到偏移(即输入为0时的 ...

  7. python 视频 灰度 伽玛_Python 图像处理实战 | 图像的灰度非线性变换之对数变换、伽马变换...

    作者 | 杨秀璋 来源 | CSDN博客 责编 | 夕颜 头图 | 付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 本篇文章主要讲解非线性变换,使用自定义方法对图像进行灰度化处理,包 ...

  8. opencv 伽马变换

    1.算法原理 伽马变换一种灰度变换,属于简单图像增强,也称幂律变换 先介绍两个函数 1.normalize 归一化 normalize(imageGamma, imageGamma, 0, 255, ...

  9. 图像算法一:【图像点运算】灰度直方图、伽马变换、灰度阈值变换、分段线性变换、直方图均衡化

    灰度直方图:imhist() %描述了图像灰度统计信息,主要应用于图像分割和图像灰度变换.>>Img=imread( ' xxx.jpg' ); %读图>>I=imhist(I ...

最新文章

  1. SpringBoot配置属性之Server
  2. 如何高效的利用博客园?
  3. node.js require 自动执行脚本 并生成html,从HTML页面执行Nodejs脚本?
  4. 汇编语言重写除零中断
  5. a标签download属性无效_使用这些 CSS 属性选择器来提高前端开发效率
  6. HDU1163 Eddy's digital Roots(解法二)【快速模幂+九余数定理】(废除!!!)
  7. java系统参数表有哪些_Java 设置系统参数和运行参数
  8. .NET中利用XML来自动生成代码策略
  9. CSDN页面不登录直接复制代码的方法
  10. JS字符串转为数值方法详解
  11. 保定华电计算机考研真题,华北电力大学(保定)离散数学试题(含2005年真题)...
  12. Python 珍藏函数超详解:随机抽样,分层抽样,系统抽样方法汇总
  13. 采集新闻数据的10个经典方法
  14. java生成密码生成
  15. 华为鸿蒙家电物联网,华为“鸿蒙”来了:本身是为了做物联网,将比安卓速度快60%...
  16. 京东快递开接外单偏平台商户
  17. 面向对象程序设计c 语言,C 语言如何实现面向对象编程
  18. 魔众企业VI系统-帮您快速创建现代化的企业形象
  19. 自动化控制行业常见面试问题分析
  20. 【物联网树莓派毕设04】Arduino实现电梯及人脸识别门禁

热门文章

  1. 推荐你几个可以在手机上学习编程的软件
  2. UML项目练习-仓库管理系统
  3. 通证经济是更高层次的自由
  4. 回溯 | 19 332.重新安排行程(hard)**
  5. 用matlab编写逢七必过游戏规则,数字图像处理及应用(MATLAB)第4章
  6. docker: Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]
  7. Python入门必备的书籍推荐
  8. Xiaojie雷达之路---拉伸信号处理
  9. js基础知识05习题课(这就是八股文吗?i了i了)
  10. GEO学习笔记-P3 表达矩阵过滤