1.直方图 直方图: (1) 图像中不同像素等级出现的次数 (2) 图像中具有不同等级的像素关于总像素数目的比值。 我们使用cv2.calcHist方法得到直方图 cv2.calcHist(images, channels, mask, histSize, ranges): -img: 图像 -channels: 选取图像的哪个通道 -histSize: 直方图大小 -ranges: 直方图范围 cv2.minMaxLoc: 返回直方图的最大最小值,以及他们的索引 import cv2 import numpy as np def ImageHist(image, type): col 在图像处理领域,直方图均衡化是一种增强图像对比度的技术,尤其对于低对比度的图像效果显著。直方图可以直观地反映出图像中不同灰度级别的像素出现的频率,也就是像素等级出现的次数和其在整个图像像素总数中的比例。在Python中,我们可以使用OpenCV库来实现这一过程。 我们需要理解`cv2.calcHist`函数的用法。这个函数用于计算图像的直方图,参数包括: - `images`: 要计算直方图的图像。 - `channels`: 指定要处理的图像通道,例如在BGR色彩空间中,我们可以选择0(蓝色),1(绿色)或2(红色)通道。 - `mask`: 可选的掩码图像,用于限制计算直方图的区域。 - `histSize`: 直方图的大小,通常设置为图像的灰度级别数(例如,对于8位图像,为256)。 - `ranges`: 直方图的边界值,这里通常设置为[0,255],表示8位图像的灰度范围。 `cv2.minMaxLoc`函数用于找到直方图中的最大值和最小值及其索引,这对于直方图归一化是必要的。 在实现直方图均衡化时,对于灰度图像,我们可以直接使用`cv2.equalizeHist`函数。这个函数会通过重新映射像素值来拉伸直方图,使得图像的对比度增强。例如: ```python import cv2 import numpy as np img = cv2.imread('img.jpg', 0) # 读取灰度图像 eq_hist_img = cv2.equalizeHist(img) ``` 对于彩色图像,我们需要对每个通道分别进行直方图均衡化。可以使用`cv2.split`来分离BGR通道,然后对每个通道应用`cv2.equalizeHist`,最后用`cv2.merge`合并处理过的通道,得到均衡化后的彩色图像。 ```python import cv2 import numpy as np img = cv2.imread('img.jpg', 1) # 读取彩色图像 b, g, r = cv2.split(img) b_eq = cv2.equalizeHist(b) g_eq = cv2.equalizeHist(g) r_eq = cv2.equalizeHist(r) eq_hist_img = cv2.merge((b_eq, g_eq, r_eq)) ``` 如果想要自定义实现直方图均衡化,可以按照以下步骤操作: 1. 计算原始图像的直方图。 2. 计算累积分布函数(CDF),即将直方图中的每个值累加起来,得到一个从0到1的累积比例。 3. 将CDF映射回新的灰度级,这样可以得到一个新的灰度级映射关系,用于增强对比度。 4. 使用新的灰度级映射关系,对原始图像的每个像素进行转换。 这种方法可以有效地提高图像的对比度,特别是在图像的像素分布不均匀时。然而,需要注意的是,直方图均衡化可能不适用于所有情况,有时可能会导致过亮或过暗的效果,因此在实际应用中需要根据图像的具体情况灵活选择合适的图像增强方法。
剩余6页未读,继续阅读
- 粉丝: 5
- 资源: 922
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 智能优化特征选择-基于FPA花朵授粉优化的特征选择分类算法KNN分类器(matlab程序)
- 移动方块小游戏-Python
- 智能优化特征选择-基于FOA果蝇优化的特征选择分类算法(matlab程序)
- 智能优化特征选择-基于MFO飞蛾扑火优化的特征选择分类算法(matlab程序)
- QT MySQL编译工程目录
- 智能优化特征选择-基于MBO帝王蝴蝶优化的特征选择分类算法(matlab程序)
- 智能优化特征选择-基于DE差分进化优化的特征选择分类算法(matlab程序)
- 基于Python实现stm32 ISP串口烧录hex文件源代码.zip
- 机器学习作业-垃圾邮件过滤实现+源代码+文档说明+数据集
- 基于JAYA优化的特征选择分类算法KNN分类器(完整Matlab程序和数据)
评论0