【图像处理】gamma校正通俗解释及python实现(替代matlab imadjust)
Motivation
之前把matlab代码转python的时候转过这个函数。最近自己动手发现还会用到,遂贴上来方便有需要的朋友们自取。
Gamma校正(gamma correction)
一句话解释:其实就是说,在人眼看来,亮度并不是线性变化的(对深色更敏感),所以需要做一个映射,来让人眼感觉色彩是均匀变化的。这个映射就是所谓的gamma校正。
我们看下面这张图,左边在亮度上其实是均匀变化的,但是在我们人眼看来,深色数量远多于亮色。通过一个非线性校正后(右图),我们人眼看来就是均匀变化的了。这也就是gamma校正的目的。
实际测出来人眼需要的gamma值是2.2
(图片来源:Google)
想看详细解释的朋友们可以移步:https://www.zhihu.com/question/27467127
Python实现
import numpy as npdef imadjust(img, in_range=[0, 1], out_range=[0, 1], gamma=1):# 默认参数和matlab中的默认参数相同low_in, high_in = in_range[0], in_range[1]low_out, high_out = out_range[0], out_range[1]# 百分比截断p1, p99 = np.percentile(img, (1, 99))img_out = np.clip(img, p1, p99)# 映射 参考https://stackoverflow.com/questions/39767612/what-is-the-equivalent-of-matlabs-imadjust-in-pythonimg_out = (((img_out - low_in) / (high_in - low_in)) ** gamma) * (high_out - low_out) + low_outreturn img_out
当然,如果不需要和matlab的参数一样,也可以自己实现一个版本
import numpy as npdef imadjust(img, out_range=[0, 1], gamma=1):# 默认参数和matlab中的默认参数相同# 百分比截断p1, p99 = np.percentile(img, (1, 99))img_out = np.clip(img, p1, p99)low_in, high_in = np.min(img), np.max(img)low_out, high_out = out_range[0], out_range[1]# 映射 参考https://stackoverflow.com/questions/39767612/what-is-the-equivalent-of-matlabs-imadjust-in-pythonimg_out = (((img_out - low_in) / (high_in - low_in)) ** gamma) * (high_out - low_out) + low_outreturn img_out
【图像处理】gamma校正通俗解释及python实现(替代matlab imadjust)相关推荐
- python 数据图像修正_图像处理gamma修正(伽马γ校正)的原理和实现算法
本文转自博客园:淇淇宝贝的文章<图像处理之gamma校正>,原文链接:https://www.cnblogs.com/qiqibaby/p/5325193.html 一.gamma校正背景 ...
- 【图像处理】——图像的灰度化处理(Python实现三种方法——最大值法、平均值法、加权均值法、gamma校正)
目录 一.什么是图像的灰度化? 二.灰度化的几种方法(最大值法.平均值法.加权均值法.gamma校正) 1.直接调用函数:cv2.cvtColor() 图像颜色空间转换 2.最大值法 (1)概念 (2 ...
- 图像处理gamma修正(伽马γ校正)的原理和实现算法
☞ ░ 前往老猿Python博文目录 ░ 本文转自博客园:淇淇宝贝的文章<图像处理之gamma校正>,原文链接:https://www.cnblogs.com/qiqibaby/p/532 ...
- python实现图像自动Gamma校正
python实现图像自动Gamma校正 前言: 关于Gamma: Gamma校正是对动态范围内亮度的非线性存储/还原算法,即输入值进行的非线性操作,使输出值与输入值呈指数关系:从效果上来说Gamma校 ...
- python图片矫正后对比_python库skimage 对图像进行gamma校正和log校正
Gamma校正 Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系: 这个指数即为Gamma. Gamma校正的原理很简单,就一个很简单的表达式,如下图所示: ...
- 图像处理之Gamma校正
基于查找表的快速Gamma校正 在图像预处理中经常通过Gamma校正实现像素修正,常见的Gamma校正是按照公式 对每个像素进行校正,这样做对一张图片还好,当你有大量图片需要做相同处理的时 候计算量就 ...
- Gamma校正原理及python实现
Gamma校正原理: 假设图像中有一个像素,值是 200 ,那么对这个像素进行校正必须执行如下步骤: 1. 归一化 :将像素值转换为 0 - 1 之间的实数. 算法如下 : ( i + 0. 5 ...
- 图像处理算法之Gamma校正
文章目录 1 使用场景 2 原理 3 实现步骤 4 实现 5 效果 1 使用场景 当一张图片出现过亮或者过暗的时候导致图像对比度较差,可以使用Gamma校正来处理 2 原理 如上图所示,为函数 f(I ...
- 在OpenCV环境下对图像做Gamma校正
什么是Gamma校正? Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系. 上面中的指数γ即为Gamma. 经过Gamma校正后的输入和输出图像灰度值关系如 ...
最新文章
- ListDefinition Tips
- 11gR2 RAC手动添加节点数据库实例
- undefined: grpc.SupportPackageIsVersion6 和 undefined: grpc.ClientConnInterface 解决办法
- python学习-数据类型(列表→创建、取值、大小、长度)
- 华科计算机复试考什么,华科计算机复试的机试
- 一个想法照进现实-《IT连》创业项目:万事开头难
- 前端小白该如何学习?前端开发工程师掌握哪些能力
- 解决FastCGI 进程超过了配置的活动超时时限的问题
- [Erlang脚印 0004] gen_server
- 解决手机邮箱登录学生邮箱时服务器无法连接的问题
- Qtalk 0.2.0版本(基于Qt的局域网聊天软件)
- dhcp服务器里的dns怎么修改,dhcp服务器的dns设置方法
- 织梦模板(dedecms) 文章页调用 浏览次数(阅读量,访问量)
- Android 监听短信2种方式:Broadcast和ContentObserver
- 全球及中国水疗水下跑步机行业研究及十四五规划分析报告
- html a标签鼠标聚焦,html怎么实现鼠标悬停提示A标签内容
- 【3】Kubernetes资源管理
- GNS3快捷安装指南
- 遇到问题---CDH重启namenode--Command timed-out after 150 seconds--角色正在启动
- centos 7使用gcc编译c语言,CentOS 7编译安装gcc 4.9.4