Python实现伽马矫正
伽马矫正是一种借助了指数变换映射的增强技术。伽马矫正的映射函数可表示为:d = T(s)= csY ,其中c和y为常数。y的值是控制变换效果的主要因素,所以被称之为伽马矫正。
如右图所示:
·当y 之1时,输入的低灰度范围被压缩,
高灰度范围被拉伸,实现了强化亮部,压缩暗部的图像增强效果;
·当y >1时,输入的高灰度范围被压缩,
·低灰度范围被拉伸,实现了强化暗部,压缩亮部的图像增强效果;
gama,pY
代码实现
import numpy as np
import cv2def gama_trans(img, gamma):# 先归一化处理,再做伽马计算,再还原到[0,255]gmma_list = [np.power(x / 255.0, gamma) * 255.0 for x in range(256)]# 将列表换成nparray,换成无符号8为数gamma_table = np.round(np.array(gmma_list)).astype(np.uint8)return cv2.LUT(img, gamma_table)# 定义matshow方法
def matshow(title='image', image=None, gray=False):if isinstance(image, np.ndarray):if len(image.shape) == 2:passelif gray:# 转换成GRAY格式image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)else:# 图片默认BGR通道,将突破转换成RGBimage = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)# 使用这种方式显示图片可能会导致图片显示畸形# cv2.imshow('image', image)plt.figure()# 载入图像plt.imshow(image, cmap="gray")# 设置标题plt.title(title)plt.show()if __name__ == '__main__':im = cv2.imread('data/lena.jpg', 0)matshow('im', im)# 使用小于1的伽马值im = gama_trans(im, 0.5)matshow('im0.5', im)# 使用大于1的伽马值im = gama_trans(im, 3)matshow('im3', im)
实现效果
Python实现伽马矫正相关推荐
- 伽马矫正(Gamma correction)
在学习HOG描述子时,对图像进行预处理中使用了伽马矫正这个方法,这里对伽马矫正进行简要的介绍. 伽马矫正也称幂律变换,一般用于平滑的扩展暗调的细节.进行伽马矫正的原因是因为人类的眼睛在感知光线时,眼睛 ...
- OpenCV4.3 Java 编程入门:图片的亮度、对比度、及伽马矫正
文章目录 1 计算公式 2 对比度.亮度矫正 3 伽马矫正 图像亮度和对比度的调整操作,属于图像处理中比较简单的一种--点像素操作! 1 计算公式 点操作仅仅根据输入像素值,结合配置参数,来计算相应的 ...
- 图形渲染——伽马矫正
这个话题一直是我的一个困扰,因为我看了Unity Shader的讲解,总感觉作者是不是把问题搞反了,前后叙述是矛盾的.后来经过反复查看,可以肯定作者是对的,但是因为表述不清楚或者太啰嗦,把一些重点给掩 ...
- python求伽马分布模型参数_Python实现的各种常见分布算法示例
本文实例讲述了Python实现的各种常见分布算法.分享给大家供大家参考,具体如下: #-*- encoding:utf-8 -*- import numpy as np from scipy impo ...
- OpenCV论道:为什么我的伽马校正函数只有一行?
最近在用 OpenCV 识别棋盘棋子,基本的思路是这样的:先转灰度,再做高斯模糊和二值化,此时棋盘格上有的有棋子,有的无棋子:通过迭代腐蚀,消去棋子,再迭代膨胀回来,就得到了一个纯净的棋盘:识别棋盘, ...
- 伽马校正(gamma correction)学习笔记
学习HDR和Bloom特效的过程中,接触到了伽马矫正的问题.查阅了不少资料,这一篇讲的最清楚,下面的图片也是来自该文章. 这应该说是一个历史遗留问题,以前的CRT显示器是使用电子显像管,通过控制电流大 ...
- 【TA100】图形 2.6伽马(Gamma)校正
很好的视频 https://www.bilibili.com/video/BV15t411Y7cf/?spm_id_from=333.788.b_636f6d6d656e74.96&vd_so ...
- python 视频 灰度 伽玛_Python 图像处理实战 | 图像的灰度非线性变换之对数变换、伽马变换...
作者 | 杨秀璋 来源 | CSDN博客 责编 | 夕颜 头图 | 付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 本篇文章主要讲解非线性变换,使用自定义方法对图像进行灰度化处理,包 ...
- [Python图像处理] 十六.图像的灰度非线性变换之对数变换、伽马变换
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- python怎么用gamma函数_如何通俗的理解伽马(gamma)函数
如何通俗的理解伽马(gamma)函数 - 直觉,求导和示例 我为什么要在乎garmma分布? 使用伽马函数定义了许多概率分布,例如伽马分布,Beta分布,狄利克雷分布,卡方分布和学生t分布等. 对于数 ...
最新文章
- maven多项目打包报错---子模块相互依赖打包时所遇到的问题:依赖的程序包找不到 package xxx does not exist
- AI2:预计2030年中国AI研究或领跑全球
- 动态规划备忘录方法Java_动态规划和备忘录法的区别
- 项目推进计划表_项目为啥延期之一:计划问题
- 【渝粤教育】21秋期末考试管理学原理★10013k1
- VMware12序列号
- lol大脚一直卡在读取服务器信息,英雄联盟大脚 - 英雄联盟 - LOL英雄联盟官网 - 英雄联盟攻略 - 英雄联盟专题站...
- python计算目标文件夹中各文件的GC含量
- 笔记本wifi共享出来能够连接但是没有网速
- No module named libs.resources
- 拉开差距的面试题:如何设计一个电商平台积分兑换系统??
- Spring Cloud Gateway Session
- 从200K/s到2M/s,只差这篇文章——使用ProxyeeDown加速百度云盘下载速度
- 【微信每日早安推送】每日天气推送
- jquery 前端实现图片压缩和上传
- signal 11 定位
- HDU 4508 湫湫系列故事――减肥记I
- Java实现印刷体转手写体—妈妈再也不用担心我被罚抄作业了
- wifi密码公式计算机,这个WIFI密码,你计算出来了么?
- 硬盘零磁道损坏的处理方法
热门文章
- 波束赋形beamforming
- 什么是视频网站CDN呢?视频网站使用了视频CDN有什么优势?
- 小米禁止android系统联网,解决MIUI下新安装应用无法联网的问题
- 木耳炒什么好吃 木耳的做法
- html可以用搜狗浏览器打开网页,搜狗浏览器网页不小心关了怎么办?搜狗浏览器恢复页面三种方法...
- 搜狗浏览器怎么清除浏览记录 搜狗浏览器清除浏览记录教程
- 撼龙图怎么开鸿蒙炁灵,《一人之下》藏金图怎么玩 撼龙藏金图高概率出绝世炁灵技巧...
- dvi一分四_【1进4出DVI分配器】
- Ionic之自定义icon大小
- 西门子PLC怎么调试?