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)相关推荐

  1. python 数据图像修正_图像处理gamma修正(伽马γ校正)的原理和实现算法

    本文转自博客园:淇淇宝贝的文章<图像处理之gamma校正>,原文链接:https://www.cnblogs.com/qiqibaby/p/5325193.html 一.gamma校正背景 ...

  2. 【图像处理】——图像的灰度化处理(Python实现三种方法——最大值法、平均值法、加权均值法、gamma校正)

    目录 一.什么是图像的灰度化? 二.灰度化的几种方法(最大值法.平均值法.加权均值法.gamma校正) 1.直接调用函数:cv2.cvtColor() 图像颜色空间转换 2.最大值法 (1)概念 (2 ...

  3. 图像处理gamma修正(伽马γ校正)的原理和实现算法

    ☞ ░ 前往老猿Python博文目录 ░ 本文转自博客园:淇淇宝贝的文章<图像处理之gamma校正>,原文链接:https://www.cnblogs.com/qiqibaby/p/532 ...

  4. python实现图像自动Gamma校正

    python实现图像自动Gamma校正 前言: 关于Gamma: Gamma校正是对动态范围内亮度的非线性存储/还原算法,即输入值进行的非线性操作,使输出值与输入值呈指数关系:从效果上来说Gamma校 ...

  5. python图片矫正后对比_python库skimage 对图像进行gamma校正和log校正

    Gamma校正 Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系: 这个指数即为Gamma. Gamma校正的原理很简单,就一个很简单的表达式,如下图所示: ...

  6. 图像处理之Gamma校正

    基于查找表的快速Gamma校正 在图像预处理中经常通过Gamma校正实现像素修正,常见的Gamma校正是按照公式 对每个像素进行校正,这样做对一张图片还好,当你有大量图片需要做相同处理的时 候计算量就 ...

  7. Gamma校正原理及python实现

    Gamma校正原理: 假设图像中有一个像素,值是 200 ,那么对这个像素进行校正必须执行如下步骤:  1. 归一化 :将像素值转换为  0 - 1  之间的实数. 算法如下 : ( i + 0. 5 ...

  8. 图像处理算法之Gamma校正

    文章目录 1 使用场景 2 原理 3 实现步骤 4 实现 5 效果 1 使用场景 当一张图片出现过亮或者过暗的时候导致图像对比度较差,可以使用Gamma校正来处理 2 原理 如上图所示,为函数 f(I ...

  9. 在OpenCV环境下对图像做Gamma校正

    什么是Gamma校正? Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系. 上面中的指数γ即为Gamma. 经过Gamma校正后的输入和输出图像灰度值关系如 ...

最新文章

  1. ListDefinition Tips
  2. 11gR2 RAC手动添加节点数据库实例
  3. undefined: grpc.SupportPackageIsVersion6 和 undefined: grpc.ClientConnInterface 解决办法
  4. python学习-数据类型(列表→创建、取值、大小、长度)
  5. 华科计算机复试考什么,华科计算机复试的机试
  6. 一个想法照进现实-《IT连》创业项目:万事开头难
  7. 前端小白该如何学习?前端开发工程师掌握哪些能力
  8. 解决FastCGI 进程超过了配置的活动超时时限的问题
  9. [Erlang脚印 0004] gen_server
  10. 解决手机邮箱登录学生邮箱时服务器无法连接的问题
  11. Qtalk 0.2.0版本(基于Qt的局域网聊天软件)
  12. dhcp服务器里的dns怎么修改,dhcp服务器的dns设置方法
  13. 织梦模板(dedecms) 文章页调用 浏览次数(阅读量,访问量)
  14. Android 监听短信2种方式:Broadcast和ContentObserver
  15. 全球及中国水疗水下跑步机行业研究及十四五规划分析报告
  16. html a标签鼠标聚焦,html怎么实现鼠标悬停提示A标签内容
  17. 【3】Kubernetes资源管理
  18. GNS3快捷安装指南
  19. 遇到问题---CDH重启namenode--Command timed-out after 150 seconds--角色正在启动
  20. centos 7使用gcc编译c语言,CentOS 7编译安装gcc 4.9.4

热门文章

  1. 无线物理层安全技术的研究进展
  2. docker安装mysql(PXC)集群
  3. 算法_二叉树_二叉树的最大深度
  4. 即将告别--新纪元网站
  5. “华为”和“荣耀”的区别,双品牌满足我和爸妈的不同需求
  6. 数学之美读书笔记第一章
  7. JSONObject遍历并替换部分json值
  8. c语言---指针结构体篇
  9. mbedtls安装的心路历程
  10. JAVA OOP继承和抽象