Opencv | 直方图均衡化

python 复制代码
import cv2 #opencv 读取的格式是BGR
import numpy as np
import matplotlib.pyplot as plt #Matplotlib是RGB
%matplotlib inline
python 复制代码
def cv_show(img,name):
    cv2.imshow(name,img)
    cv2.waitKey()
    cv2.destroyAllWindows()

cv2.calcHist(images,channels,mask,histSize,ranges)

  • images: 原图像图像格式为uint8 或 float32。当传入函数时应用中括号[]括来例如[img]

  • channels: 如果灰度图它的值就是[0],如果是彩色图像的传入的参数可以是[0][1][2],它们分别对应着BGR。

  • mask: 掩模图像。统整幅图像的直方图就把它为None。但是如果你想统图像某一分的直方图的你就制作一个掩模图像并使用它。

  • histSize: BIN 的数目。也应用中括号括来

  • ranges: 像素值范围常为[0256]

cat.jpg

python 复制代码
img = cv2.imread('cat.jpg',0)#0表示灰度图
hist = cv2.calcHist([img],[0],None,[256],[0,256])
hist.shape
python 复制代码
plt.hist(img.ravel(),256);
plt.show()

可视化运行结果:

直方图均衡化:

python 复制代码
equ = cv2.equalizeHist(img)
plt.hist(equ.ravel(),256)
plt.show()
python 复制代码
res = np.hstack((img,equ))
cv_show(res,'res')

运行结果:

自适应直方图均衡化:

python 复制代码
clahe = cv2.createCLAHE(clipLimit=2.0,tileGridSize=(8,8))
python 复制代码
res_clahe = clahe.apply(img)
res = np.hstack((img,equ, res_clahe))
cv_show(res,'res')

运行结果:

相关推荐
一水鉴天4 小时前
整体设计 定稿 之30 架构表述表总 语义分析 之1(codybuddy)
人工智能·重构
草莓熊Lotso4 小时前
C++11 核心精髓:类新功能、lambda与包装器实战
开发语言·c++·人工智能·经验分享·后端·nginx·asp.net
c#上位机4 小时前
halcon窗口显示带有箭头的直线
计算机视觉·c#·halcon
非著名架构师4 小时前
物流算法的“高阶变量”:高精度AI气象如何为智能供应链注入“天气理解力”,实现动态成本与风险最优?
人工智能·疾风气象大模型·高精度天气预报数据·galeweather.cn·高精度气象·风电光伏功率预测
后端小肥肠4 小时前
Coze编程首测:我用大白话搭了个“AI漫剧流水线”,太离谱了!
人工智能·aigc·coze
倪偲0014 小时前
livox/CustomMsg消息从ROS1 bag转换成ROS2
人工智能·机器人·自动驾驶
IT知识分享4 小时前
中科天玑全要素AI舆情系统功能、架构解析
人工智能·语言模型·架构
AI营销资讯站4 小时前
AI营销内容生产新趋势:原圈科技引领企业全球化内容智能升级
人工智能·科技
dagouaofei4 小时前
AI自动生成PPT工具横评,真实使用感受分享
人工智能·python·powerpoint
JoannaJuanCV4 小时前
自动驾驶—CARLA仿真(19)automatic_control demo
人工智能·机器学习·自动驾驶