美文网首页数字图像处理入门
[图像增强][灰度变换]3. 对数非线性变换

[图像增强][灰度变换]3. 对数非线性变换

作者: 砥砺前行的人 | 来源:发表于2021-11-07 21:19 被阅读0次

    1. 基本原理

    对数变换,属于非线性变换,变换关系如下(举例):


    表达式形式如下:
    f(x) = c * log(1 + f) \\ f^{'}(x) = \frac {c} {ln2(1+f)} \\ f^{''}(x) = -\frac {c} {ln2(1+f)^2}

    我们通过二次导数可知,随着输入 f 的增大,f^{''}(x) 越来越小,即 f(x) 变得越来越平缓,其图像含义是处于前段的像素值宽度边框,越往后越来越窄,即图片整体的亮度提升,越暗的提升越明显。

    2. 使用场景

    可用于提升图片亮度。

    3. 代码示例

    考虑如下灰度图像:


    代码如下:

    import cv2 as cv
    import numpy as np
    from math import *
    import matplotlib.pyplot as plt
    
    
    # 按灰度读取一张图片
    img = cv.imread("cell.png",cv.IMREAD_GRAYSCALE)
    dst = (50 * np.log(1 + img)).astype('uint8')
    
    plt.figure()
    plt.subplot(2,2,1)
    plt.imshow(img, cmap='gray')
    plt.subplot(2,2,2)
    plt.imshow(dst, cmap='gray')
    plt.subplot(2,2,3)
    plt.hist(img.ravel(), 256, [0, 256])
    plt.subplot(2,2,4)
    plt.hist(dst.ravel(), 256, [0, 256])
    plt.show()
    

    输出结果如下:


    通过观察直方图我们发现,处理后的图像的像素值分布右移,对比度变化,图像变得更加更亮。

    相关文章

      网友评论

        本文标题:[图像增强][灰度变换]3. 对数非线性变换

        本文链接:https://www.haomeiwen.com/subject/uvcyzltx.html