matlab对图像进行gamma变换_Python-OpenCV 13. 灰度变换

一、概念

1. 定义

灰度变换是指根据某种目标条件按一定变换关系逐点改变源图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。 图像的灰度变换处理是图像增强处理技术中的一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分。

2. 灰度线性变换

线性变换

在曝光度不足或过度的情况下,图像灰度可能会局限在一个很小的范围内。这时在显示器上看到的将是一个模糊不清、没有灰度层次的图像。用一个线性单值函数,对图像内的每一个像素做线性扩展,将有效地改善图像视觉效果。
假定源图像f(x, y)的灰度范围为[a, b],希望变换后图像g(x, y)的灰度范围扩展至[c, d],则线性变换可表示为

9fac58fa8b5218da9ffaabf0f336c31d.png

分段线性变换

增强图像对比度实际是增强图像中各部分之间的反差,往往通过增加图像中两个灰度值间的动态范围来实现,有时也称其为对比度拉伸。为了突出感兴趣的灰度区间,相对抑制那些不感兴趣的灰度区间,可采用分段线性变换。

3. 灰度非线性变换

当某图像的像素集中于中间灰度部分,而其他部分的像素很少时,如果只想仔细地分析图像的某一部分,也就是对图像的那部分增强,我们可以压缩像素少的部分,扩展像素数集中的部分。典型的非线性变换函数有幂函数、对数函数、指数函数、阈值函数、多值量化函数、窗口函数等。阈值函数、多值量化函数、窗口函数。

--摘自《百度百科》

二、算法实例

1. 分段线性变换

分段线性变换将图像的值域分成多个值域并进行不同的线性变换计算,可以压缩某部分灰度区,扩展另一部分灰度区间。

# -*- coding: utf-8 -*-import cv2import numpy as npfn = "test.jpg"myimg = cv2.imread(fn)img = cv2.cvtColor(myimg, cv2.COLOR_BGR2GRAY)w = img.shape[1]h = img.shape[0]newimg = np.zeros((h, w), np.uint8)# 源Ds_min = 0Ds_internal = 80 # 中间Ds_max = 255# 目标Dd_min &
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值