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,如果是彩色图像的传入的参数可以是012,它们分别对应着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')

运行结果:

相关推荐
lisw056 小时前
社会技术需要社会协调!
人工智能·机器学习·软件工程
血小溅6 小时前
Claude Code 高效使用指南:让 AI 真正完成任务,而不只是生成代码
人工智能
ZGi.ai6 小时前
ZGI工作流引擎:把AI应用的执行过程从黑盒变成流程图
人工智能·低代码·流程图·ai应用·ai工作流·zgi
物联网软硬件开发-轨物科技6 小时前
【轨物方案】从传感器到AI诊断:箱变智能化技术栈四层架构精讲
人工智能·架构
星期一研究室6 小时前
创作分发这件事,来看看Codex是怎么做的
人工智能·黑客·微信
爱学习的章鱼哥6 小时前
一些AI实操的经验与感想
人工智能·ai·ai作画·ai编程·ai写作·ai经验
言己lxz7 小时前
阿里云官方技术文档已全面上线 llms.txt —— AI Agent 一站式消费 300+ 款云产品文档
人工智能·阿里云·llmstxt
happyness447 小时前
如何让AI重构旧代码
人工智能·重构
dream_home84077 小时前
图像算法模型NPU适配与算法服务实战指南
人工智能·python·算法·npu 图像服务
AI服务老曹7 小时前
Docker部署AI视频分析平台参数配置说明与调优指南
人工智能·docker·音视频