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

运行结果:

相关推荐
2501_9181269113 小时前
学习python所有用来写ai的语句
人工智能·python·学习
红色石头本尊13 小时前
2-使用LLM链和Prompt模板
人工智能
红色石头本尊13 小时前
1-认识langchain.js
人工智能
NAGNIP14 小时前
面试官:你在训模型的时候经常使用的学习率策略有哪些?
人工智能
Sammyyyyy14 小时前
9个Python库把一个月的AI开发周期缩短到了3天
人工智能·后端·python·servbay
Julian.zhou14 小时前
AI Coding的本质:Skill为魂,脚本为足,双引擎驱动确定性工程
人工智能·ai编程·ai coding
ambition2024214 小时前
从“分组游戏”到数学结构:等价关系、等价类、商集与划分完全指南
人工智能·游戏
黎阳之光14 小时前
AI数智筑防线 绿色科技启新篇——黎阳之光硬核技术赋能生态安全双升级
大数据·人工智能·算法·安全·数字孪生
高德开放平台14 小时前
高德开放平台已全面接入“鹰眼守护”预警系统,两轮车版率先适配小牛电动
人工智能
twc82914 小时前
Query 改写 大模型测试的数据倍增器
开发语言·人工智能·python·rag·大模型测试