python opencv 增强对比度

通过Python的OpenCV库,对一片漆黑的图片进行处理,增强其对比度,使得原本难以辨识的小猫变得清晰可见,直方图显示图像像素分布集中,经过处理后,小猫的可爱形象得以展现。
import cv2
import numpy as np
from matplotlib import pyplot as plt
img=cv2.imread('miao.jpg',0)
hist=cv2.calcHist([img],[0]
使用PythonOpenCV进行图像对比度增强有多种方法,以下为你介绍常见的几种: - **直方图均衡化**:是一种增强图像对比度的方法,特别是当图像的有用数据的对比度接近背景的对比度时,可使用OpenCV中的`cv2.equalizeHist()`函数实现直方图均衡化 [^2]。 ```python import cv2 import numpy as np # 读取图像 image = cv2.imread('your_image.jpg', 0) # 进行直方图均衡化 equalized_image = cv2.equalizeHist(image) # 显示原始图像和均衡化后的图像 cv2.imshow('Original Image', image) cv2.imshow('Equalized Image', equalized_image) cv2.waitKey(0) cv2.destroyAllWindows() ``` - **自适应直方图均衡化**:可以在局部区域进行直方图均衡化,避免全局直方图均衡化可能出现的过度增强问题。OpenCV提供了`cv2.createCLAHE()`函数来实现自适应直方图均衡化。 ```python import cv2 import numpy as np # 读取图像 image = cv2.imread('your_image.jpg', 0) # 创建CLAHE对象 clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8)) # 应用自适应直方图均衡化 clahe_image = clahe.apply(image) # 显示原始图像和增强后的图像 cv2.imshow('Original Image', image) cv2.imshow('CLAHE Image', clahe_image) cv2.waitKey(0) cv2.destroyAllWindows() ``` - **线性变换**:通过调整图像的亮度和对比度,公式为$O(x,y) = a * I(x,y) + b$,其中$I(x,y)$是原始图像像素值,$O(x,y)$是增强后图像像素值,$a$控制对比度,$b$控制亮度。 ```python import cv2 import numpy as np # 读取图像 image = cv2.imread('your_image.jpg') # 调整对比度和亮度 a = 1.5 # 对比度调整因子 b = 30 # 亮度调整因子 enhanced_image = cv2.convertScaleAbs(image, alpha=a, beta=b) # 显示原始图像和增强后的图像 cv2.imshow('Original Image', image) cv2.imshow('Enhanced Image', enhanced_image) cv2.waitKey(0) cv2.destroyAllWindows() ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值