Opencv图像增强技术
OpenCV 是一个强大的计算机视觉库,提供了丰富的功能来进行图像处理和分析。图像增强是其中的一个重要组成部分,旨在改善图像的视觉效果或优化后续处理步骤的性能。以下是使用 OpenCV 进行图像增强的一些常见方法:
1. 线性增强
亮度和对比度调整:
alpha = 1.5 # 增益
beta = 10 # 偏置
adjusted = cv2.convertScaleAbs(image, alpha=alpha, beta=beta)
2. 非线性增强
伽马校正:
gamma = 1.2
look_up_table = np.array([((i / 255.0) ** gamma) * 255 for i in np.arange(0, 256)]).astype("uint8")
gamma_corrected = cv2.LUT(image, look_up_table)
3. 直方图均衡化
全局直方图均衡化:
equalized = cv2.equalizeHist(gray_image)
局部直方图均衡化:
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
cl1 = clahe.apply(gray_image)
4. 锐化
拉普拉斯算子:
kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]])
sharpened = cv2.filter2D(image, -1, kernel)
Unsharp Mask:
blurred = cv2.GaussianBlur(image, (0, 0), 3)
unsharp_image = cv2.addWeighted(image, 1.5, blurred, -0.5, 0)
5. 去噪
均值滤波:
blurred = cv2.blur(image, (5, 5))
中值滤波:
median_blurred = cv2.medianBlur(image, 5)
双边滤波:
bilateral_filtered = cv2.bilateralFilter(image, 9, 75, 75)
6.示例代码
这里提供一个简单的示例,展示如何使用 OpenCV 对图像进行亮度和对比度调整以及直方图均衡化:
import cv2
import numpy as np
# 加载图像
image = cv2.imread('path/to/image.jpg')
# 调整亮度和对比度
alpha = 1.5 # 增益
beta = 10 # 偏置
adjusted = cv2.convertScaleAbs(image, alpha=alpha, beta=beta)
# 全局直方图均衡化
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
equalized = cv2.equalizeHist(gray_image)
# 局部直方图均衡化
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
cl1 = clahe.apply(gray_image)
# 显示结果
cv2.imshow('Original Image', image)
cv2.imshow('Adjusted Image', adjusted)
cv2.imshow('Global Equalization', equalized)
cv2.imshow('Local Equalization', cl1)
cv2.waitKey(0)
cv2.destroyAllWindows()
这些方法可以单独使用,也可以根据需要组合使用,以达到特定的图像增强目的。