广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python gamma矫正
  • 340
分享到

python gamma矫正

pythongamma 2023-01-31 07:01:39 340人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

标签: python 2016-09-02 17:34 1453人阅读 评论(0) 收藏 举报  分类: 图像处理(145)  这个函数,主要用来做对比度调整,利用 gamma 曲线 或者 log 函数曲线,

标签: python
2016-09-02 17:34 1453人阅读 评论(0) 收藏 举报
 分类:

这个函数,主要用来做对比度调整,利用 gamma 曲线 或者 log 函数曲线,

gamma 函数的表达式: 
y=xγ, 其中, x 是输入的像素值,取值范围为 [0−1], y 是输出的像素值,通过调整γ 值,改变图像的像素值的分布,进而改变图像的对比度。 
log 函数的表达式: 
y=alog(1+x), a 是一个放大系数,x 同样是输入的像素值,取值范围为 [0−1], y 是输出的像素值。 
inverse log 的表达式: 
y=a(2x−1), 这些变换都是从 [0−1] 变到 [0−1] 。

"""
=================================
Gamma and log contrast adjustment
=================================

This example adjusts image contrast by perfORMing a Gamma and a Logarithmic
correction on the input image.

"""
import matplotlib
import matplotlib.pyplot as plt
import numpy as np

from skimage import data, img_as_float
from skimage import exposure

matplotlib.rcParams['font.size'] = 8

def plot_img_and_hist(img, axes, bins=256):
    """Plot an image along with its histogram and cumulative histogram.
    """
    img = img_as_float(img)
    ax_img, ax_hist = axes
    ax_cdf = ax_hist.twinx()

    # Display image
    ax_img.imshow(img, cmap=plt.cm.gray)
    ax_img.set_axis_off()

    # Display histogram
    ax_hist.hist(img.ravel(), bins=bins, histtype='step', color='black')
    ax_hist.ticklabel_format(axis='y', style='scientific', scilimits=(0, 0))
    ax_hist.set_xlabel('Pixel intensity')
    ax_hist.set_xlim(0, 1)
    ax_hist.set_yticks([])

    # Display cumulative distribution
    img_cdf, bins = exposure.cumulative_distribution(img, bins)
    ax_cdf.plot(bins, img_cdf, 'r')
    ax_cdf.set_yticks([])

    return ax_img, ax_hist, ax_cdf


# Load an example image
img = data.moon()

# Gamma
gamma_corrected = exposure.adjust_gamma(img, 2)

# Logarithmic
logarithmic_corrected = exposure.adjust_log(img, 1)

# Display results
fig = plt.figure(figsize=(8, 5))
axes = np.zeros((2, 3), dtype=np.object)
axes[0, 0] = plt.subplot(2, 3, 1, adjustable='box-forced')

axes[0, 1] = plt.subplot(2, 3, 2, sharex=axes[0, 0], sharey=axes[0, 0],
                         adjustable='box-forced')

axes[0, 2] = plt.subplot(2, 3, 3, sharex=axes[0, 0], sharey=axes[0, 0],
                         adjustable='box-forced')

axes[1, 0] = plt.subplot(2, 3, 4)
axes[1, 1] = plt.subplot(2, 3, 5)
axes[1, 2] = plt.subplot(2, 3, 6)

ax_img, ax_hist, ax_cdf = plot_img_and_hist(img, axes[:, 0])
ax_img.set_title('Low contrast image')

y_min, y_max = ax_hist.get_ylim()
ax_hist.set_ylabel('Number of pixels')
ax_hist.set_yticks(np.linspace(0, y_max, 5))

ax_img, ax_hist, ax_cdf = plot_img_and_hist(gamma_corrected, axes[:, 1])
ax_img.set_title('Gamma correction')

ax_img, ax_hist, ax_cdf = plot_img_and_hist(logarithmic_corrected, axes[:, 2])
ax_img.set_title('Logarithmic correction')

ax_cdf.set_ylabel('Fraction of total intensity')
ax_cdf.set_yticks(np.linspace(0, 1, 5))

# prevent overlap of y-axis labels
fig.tight_layout()
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88

这里写图片描述

--结束END--

本文标题: python gamma矫正

本文链接: https://www.lsjlt.com/news/191618.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python gamma矫正
    标签: python 2016-09-02 17:34 1453人阅读 评论(0) 收藏 举报  分类: 图像处理(145)  这个函数,主要用来做对比度调整,利用 gamma 曲线 或者 log 函数曲线, ...
    99+
    2023-01-31
    python gamma
  • opencv+python实现图像矫正
    本文实例为大家分享了opencv+python实现图像矫正的具体代码,供大家参考,具体内容如下 需求:将斜着拍摄的文本图像进行矫正 python代码 import numpy as ...
    99+
    2022-11-11
  • opencv实现文档矫正
    本文实例为大家分享了opencv实现文档矫正的具体代码,供大家参考,具体内容如下 原始文档 矫正后文档 思路: 只要获得倾斜文档的倾斜角度,然后通过仿射变化旋转一下就可以实现矫正...
    99+
    2022-11-11
  • Python OpenCV实现任意角度二维码矫正
    目录前言一般图片矫正方式二维码图片矫正思路编码实现前言 那天听到领导他们在讨论,说要将图片进行个矫正处理,还叫来了算法部的大佬来讨论将要如何处理这个,讨论场面很是激烈 不得不说好奇心...
    99+
    2022-11-11
  • Python Opencv基于透视变换的图像矫正
    本文实例为大家分享了Python Opencv基于透视变换的图像矫正,供大家参考,具体内容如下 一、自动获取图像顶点变换(获取图像轮廓顶点矫正) 图像旋转校正思路如下 1、以灰度图读...
    99+
    2022-11-13
  • OpenCV实现透视变换矫正
    本文实例为大家分享了OpenCV实现透视变换矫正的具体代码,供大家参考,具体内容如下 演示结果参考: 功能实现:运行程序,会显示图片的尺寸,按回车键后,依次点击需矫正的图片的左上、...
    99+
    2022-11-13
  • pythonopencv实现图像矫正功能
    本文实例为大家分享了python opencv实现图像矫正的具体代码,供大家参考,具体内容如下 问题简介 一般的我们对图像中的目标进行分析和检测时,往往目标具有一定的倾斜角度,自然环...
    99+
    2022-11-11
  • PythonOpenCV图像矫正的原理实现
    目录题目描述基本思路核心代码题目描述 目录hw1下的图像是一些胶片的照片,请将其进行度量矫正。 推荐流程:采用Canny算子,检测边缘点;采用Hough直线检测,根据边缘点检测胶片边...
    99+
    2022-11-11
  • C++OpenCV实战之图像透视矫正
    目录前言一、图像预处理二、轮廓提取1.提取最外轮廓2.提取矩形四个角点3.将矩形角点排序三、透视矫正四、源码前言 本文将使用OpenCV C++ 进行图像透视矫正。 一、图像预处理 ...
    99+
    2022-11-12
  • 深入探讨opencv图像矫正算法实战
    摘要 在机器视觉中,对于图像的处理有时候因为放置的原因导致ROI区域倾斜,这个时候我们会想办法把它纠正为正确的角度视角来,方便下一步的布局分析与文字识别,这个时候通过透视变换就可以取...
    99+
    2022-11-12
  • 怎么用C++ OpenCV实现文档矫正功能
    这篇文章主要介绍了怎么用C++ OpenCV实现文档矫正功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用C++ OpenCV实现文档矫正功能文章都会有所收获,下面我们一起来看看吧。需...
    99+
    2023-06-29
  • 使用pythonopencv对畸变图像进行矫正的实现
    代码: __Author__ = "Shliang" __Email__ = "shliang0603@gmail.com" import os import cv2 import...
    99+
    2022-11-11
  • OpenCV如何通过透视变换实现矫正图像
    这篇“OpenCV如何通过透视变换实现矫正图像”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“OpenCV如何通过透视变换实现...
    99+
    2023-07-05
  • OpenCV怎么通过透视变换实现矫正图像
    这篇“OpenCV怎么通过透视变换实现矫正图像”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“OpenCV怎么通过透视变换实现...
    99+
    2023-07-05
  • OpenCV透视变换应用之书本视图矫正+广告屏幕切换
    目录一、透视变换的实际应用场景二、案例了解透视变换--书本视图矫正三、案例了解透视变换--广告屏幕切换一、透视变换的实际应用场景 我们在出门坐车时,经常会看到司机会使用一种行车辅助工...
    99+
    2022-11-13
    OpenCV 透视变换应用 OpenCV透视变换 OpenCV 视图矫正 OpenCV 屏幕切换
  • 24. Python 正则
    1.常用正则表达式python的正则网站:https://regex101.com/注释:分组(P<name>…)省略的部分就是正常的正则匹配,我们把匹配到的这个整体给赋一个变量名字name,在后续调用的时候,就方便多了2.re...
    99+
    2023-01-31
    正则 Python
  • 25. Python 正则(2)
    1. re的matche方法和search方法match 方法match(string[, pos[, endpos]])string:匹配使用的文本,pos: 文本中正则表达式开始搜索的索引。及开始搜索string的下标endpos: 文...
    99+
    2023-01-31
    正则 Python
  • PYthon之正则 re
    re模块是python中处理正在表达式的一个模块正则表达式知识储备:http://www.cnblogs.com/huamingao/p/6031411.html     正则表达式使用反斜杠" \ "来代表特殊形式或用作转义字符,这里跟P...
    99+
    2023-01-31
    正则 PYthon
  • Python中的正则
    regex_lst = [   ('字符组',),   ('非打印字符',),   ('特殊字符',),   ('定位符',),   ('限定符',),   ('re模块',),   ('分组命名',),   ('或匹配',),   ('...
    99+
    2023-01-30
    正则 Python
  • python 正则表达式
    正则表达式的作用:用来匹配字符串 一、字符串方法 字符串提供的方法是完全匹配,不能进行模糊匹配 s = 'hello world' # 字符串提供的方法是完全匹配,不能进行模糊匹配 print(s.find('ll')) # 2 ...
    99+
    2023-01-30
    正则表达式 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作