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()

这些方法可以单独使用,也可以根据需要组合使用,以达到特定的图像增强目的。

GitHub 加速计划 / opencv31 / opencv
77.34 K
55.71 K
下载
OpenCV: 开源计算机视觉库
最近提交(Master分支:25 天前 )
e1fec156 features2d: fixed out of bounds access in SIFT 3 天前
63087396 - 3 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐