您的位置:首页 > 娱乐 > 八卦 > Opencv图像增强技术

Opencv图像增强技术

2024/12/23 11:06:28 来源:https://blog.csdn.net/m0_46256255/article/details/140903138  浏览:    关键词:Opencv图像增强技术

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

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com