分段线性灰度变化实现对比度增强将原图分为0-5050-120120-255增强代码示例
以下是Python代码示例:
import cv2
import numpy as np
# 读取原始图像
img = cv2.imread('lena.jpg', 0)
# 定义灰度级别分段
seg1 = [0, 50]
seg2 = [50, 120]
seg3 = [120, 255]
# 分段线性灰度变化增强
img_enhanced = np.zeros_like(img)
img_enhanced[img < seg1[0]] = 0
img_enhanced[(img >= seg1[0]) & (img < seg1[1])] = 2 * (img[(img >= seg1[0]) & (img < seg1[1])] - seg1[0])
img_enhanced[(img >= seg1[1]) & (img < seg2[0])] = 100
img_enhanced[(img >= seg2[0]) & (img < seg2[1])] = 2 * (img[(img >= seg2[0]) & (img < seg2[1])] - seg2[0]) + 100
img_enhanced[(img >= seg2[1]) & (img < seg3[0])] = 220
img_enhanced[(img >= seg3[0]) & (img < seg3[1])] = 2 * (img[(img >= seg3[0]) & (img < seg3[1])] - seg3[0]) + 220
img_enhanced[img >= seg3[1]] = 255
# 显示原图和增强后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Enhanced Image', img_enhanced)
cv2.waitKey(0)
cv2.destroyAllWindows()
上述代码中,首先读取了一张灰度图像,然后定义了三个灰度级别分段。接着,利用numpy数组的逻辑运算,对图像进行了分段线性灰度变化增强。最后,将原图和增强后的图像显示出来。
原文地址: https://www.cveoy.top/t/topic/bLZH 著作权归作者所有。请勿转载和采集!