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

运行结果:

相关推荐
IT技术范6 分钟前
中国AI企业创新实践观察:联想以全栈能力赋能产业普惠
人工智能
慧一居士18 分钟前
Ollama 本地部署的模型,多个客户端并发访问请求,会有不响应的情况,解决方案
人工智能
微刻时光20 分钟前
影刀RPA:循环相似元素列表深度解析与实战指南
java·人工智能·python·机器人·自动化·rpa·影刀
司南-704927 分钟前
opencode环境搭 并 配置自定义BASE URL
linux·运维·服务器·人工智能
做个文艺程序员34 分钟前
Claude Code vs ChatGPT Codex 深度对比:2026 年哪款 AI 编程工具更适合你?
人工智能·chatgpt
甲维斯36 分钟前
智谱CodingPlan老套餐绝版了,全网token收拢!
人工智能·ai编程
淘矿人36 分钟前
Claude辅助算法设计与优化
人工智能·python·算法·microsoft·github·bug·pygame
柴猫°40 分钟前
离散图扩散模型中的转移公式推导
人工智能·线性代数·机器学习
m0_4665252940 分钟前
绿盟科技发布2025年年报: 收入稳中有升,亏损大幅收窄,现金流持续为正
人工智能·科技
墨染天姬41 分钟前
【AI】图路由 AI 记忆引擎M-FLow
人工智能