图像的幂律(伽马)变换的python实现----冈萨雷斯数字图像处理

图像的幂律(伽马)变换:

图像的幂律(伽马)变换是一种常用的图像增强技术,通常用于调整图像的对比度。这种变换通过对图像中每个像素的灰度值进行非线性映射来实现。
幂律变换的数学表达式如下所示:

在这里插入图片描述

使用幂律变换时,较小的灰度值将被映射到更小的值,而较大的灰度值则会被映射到更大的值,以拉伸或压缩图像的灰度范围。较大的 γ 值将导致对比度增强,而较小的 γ 值将使对比度减弱。

python代码实现输出如下图所示的结果:
在这里插入图片描述

提示:

原图用opencv读入后,分别以小于1的γ值和大于1的γ值对其进行灰度变换。Python中幂律运算可用**运算符表示。实验不同的γ值对图像对比度的不同作用,8次灰度变换完成后,用pyplot同时显示所有结果图。

python代码实现

import cv2
import math
import  sys
import numpy as np
import matplotlib.pyplot as plt
img1=cv2.imread("Fig0308.tif")
img2=cv2.imread("Fig0309.tif")

if img1 is None:
    sys.exit("could not read the image")

if img2 is None:
    sys.exit("could not read the image")

def gammaTranform(c,gamma,image):
    h,w,d = image.shape[0],image.shape[1],image.shape[2]
    new_img = np.zeros((h,w,d),dtype=np.float32)
    for i in range(h):
        for j in range(w):
            new_img[i,j,0] = c*math.pow(image[i, j, 0], gamma)
            new_img[i,j,1] = c*math.pow(image[i, j, 1], gamma)
            new_img[i,j,2] = c*math.pow(image[i, j, 2], gamma)
    cv2.normalize(new_img,new_img,0,255,cv2.NORM_MINMAX)
    new_img = cv2.convertScaleAbs(new_img)

    return new_img

new_img1 = gammaTranform(1,1,img1)
new_img2= gammaTranform(1,0.6,img1)
new_img3= gammaTranform(1,0.4,img1)
new_img4= gammaTranform(1,0.3,img1)
new_img5 = gammaTranform(1,1,img2)
new_img6= gammaTranform(1,2,img2)
new_img7= gammaTranform(1,3,img2)
new_img8= gammaTranform(1,4,img2)

plt.subplot(241),plt.imshow(new_img1),plt.title("new_img1")
plt.subplot(242),plt.imshow(new_img2),plt.title("new_img2")
plt.subplot(243),plt.imshow(new_img3),plt.title("new_img3")
plt.subplot(244),plt.imshow(new_img4),plt.title("new_img4")
plt.subplot(245),plt.imshow(new_img5),plt.title("new_img5")
plt.subplot(246),plt.imshow(new_img6),plt.title("new_img6")
plt.subplot(247),plt.imshow(new_img7),plt.title("new_img7")
plt.subplot(248),plt.imshow(new_img8),plt.title("new_img8")
plt.show()

在这里插入图片描述

aaa

伽马变换可以很好地拉伸图像的对比度,扩展灰度级。
由图可知,
当图像的整体灰度偏暗时,选择γ<1,可以使图像增亮;
当图像的整体灰度偏亮时,选择γ>1,可以使图像变暗,
提高图像的对比度,凸显细节。

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值