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

运行结果:

相关推荐
王者鳜錸3 分钟前
企业解决方案十一-各类小程序定制开发
图像处理·人工智能·小程序·大模型·语音处理·定制开发
Bode_20027 分钟前
AI时代下加速制造企业创新
大数据·人工智能·机器学习
阿水实证通10 分钟前
STATA CLI:我把 Stata 接进了命令行,也接进了 AI 工作流
人工智能·ai·经济学·实证分析
qq_4112624212 分钟前
CozyLife 墨水屏 + Find My / Google 双防丢四博 AI 智能音箱方案
人工智能·智能音箱
easyllm12 分钟前
【无标题】
人工智能
人工智能培训14 分钟前
如何定义和测量“通用具身智能”
大数据·人工智能·机器学习·prompt·agent
高洁0117 分钟前
知识图谱与检索增强的实战结合
人工智能·深度学习·数据挖掘·transformer·知识图谱
跨境数据猎手17 分钟前
1688 以图搜货 API(item_search_img)开发
人工智能
深度学习lover18 分钟前
<数据集>yolo 车牌识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·车牌识别
研究点啥好呢20 分钟前
Muses | 搭建属于你自己的AI生图网站
前端·人工智能·ai·github