以下是使用分段线性灰度变化实现对比度增强的Python代码示例:

import cv2
import numpy as np

# 读取图像
img = cv2.imread('lena.jpg', cv2.IMREAD_GRAYSCALE)

# 定义灰度变化函数
def gray_transform(x, a, b, c, d):
    if x <= a:
        return 0
    elif x > a and x <= b:
        return (x - a) * 255 // (b - a)
    elif x > b and x <= c:
        return 255
    elif x > c and x <= d:
        return (d - x) * 255 // (d - c)
    else:
        return 0

# 定义分段线性灰度变化函数
def piecewise_linear_transform(img, a, b, c, d):
    # 初始化输出图像
    out = np.zeros_like(img)
    # 对每个像素进行灰度变化
    for i in range(img.shape[0]):
        for j in range(img.shape[1]):
            out[i,j] = gray_transform(img[i,j], a, b, c, d)
    return out

# 对比度增强
out = piecewise_linear_transform(img, 50, 100, 150, 200)

# 显示图像
cv2.imshow('Original Image', img)
cv2.imshow('Contrast Enhanced Image', out)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上面的代码中,我们首先读取了一张灰度图像,然后定义了一个灰度变化函数,该函数将输入灰度值映射到输出灰度值。然后,我们定义了一个分段线性灰度变化函数,该函数对图像中的每个像素进行灰度变换。最后,我们使用定义的分段线性灰度变化函数对图像进行对比度增强,并显示原始图像和增强后的图像。

分段线性灰度变化实现对比度增强代码示例

原文地址: http://www.cveoy.top/t/topic/bLY3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录