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

运行结果:

相关推荐
chenshi17819 分钟前
匠厂和普通SEO工具有什么区别?深度评测GEO自动化效率
大数据·人工智能
龙腾AI白云10 分钟前
深度学习—卷积神经网络(4)
人工智能·深度学习
ggabb14 分钟前
黄仁勋“五层蛋糕”揭秘中美AI暗战:从能源到物理AI的全维博弈
人工智能·能源
●VON14 分钟前
智慧校园2.0:人工智能如何重塑教与学的未来
人工智能·学习·von
我命由我1234522 分钟前
LangChain 学习 - Langchain Model IO(环境安装、大模型应用开发、模型分类、模型消息)
人工智能·python·ai·语言模型·pycharm·langchain·python3.11
乾元23 分钟前
边缘计算网络的自动流量分配与用户感知 QoE 优化——从“链路最优”到“体验最优”的网络控制闭环
运维·网络·人工智能·网络协议·重构·边缘计算
小北方城市网25 分钟前
GEO 新生态:跨界融合 + 场景渗透,重构 AI 时代本地商业增长版图
大数据·网络·人工智能·python·状态模式
P-ShineBeam28 分钟前
知识图谱-结构化数据的通用LLM推理框架-StructGPT
数据库·人工智能·语言模型·自然语言处理·知识图谱
paopao_wu33 分钟前
LangChainV1.0[03]-语义检索:PDF放入向量数据库
人工智能·python·langchain·pdf
救救孩子把36 分钟前
0-机器学习与大模型开发数学教程
人工智能·数学·机器学习