#Opencv python直方图(直方图的显示与均衡)

本文介绍了如何使用OpenCV的Python接口进行直方图均衡化,以此来提高图像的对比度。流程包括直方图均衡的基本原理和在Opencv中的实现。文中还引用了相关的大佬文章及实例进行辅助理解。
摘要由CSDN通过智能技术生成
#python+Opencv 直方图
import cv2 as cv 
import numpy as np 
from matplotlib import pyplot as plt

#读取灰度图
img = cv.imread('G:\\sundries\\CVpictures\\pocketmon2.jpg',0)

#查找直方图
hist = cv.calcHist([img],[0],None,[256],[0,256])
'''
cv.calcHist(images,channels,mask,histSize,ranges [,hist [,accumulate]])
1.images:它是uint8或float32类型的源图像。它应该放在方括号中,即“ [img]”。
2.channels:也以方括号给出。它是我们计算直方图的通道的索引。例如,如果输入为灰度图
像,则其值为[0]。对于彩色图像,您可以传递[0],[1]或[2]分别计算蓝色,绿色或红色通道的
直方图。
3.mask:图像掩码。为了找到完整图像的直方图,将其指定为“无”。但是,如果要查找图像特
定区域的直方图,则必须为此创建一个掩码图像并将其作为掩码。
4.histSize:这表示我们的BIN计数。需要放在方括号中。对于全尺寸,我们通过[256]。
5.ranges:这是我们的RANGE。通常为[0,256]
'''
#还可以用Numpy中的np.histogram(img_gray.ravel(),256,[0,256])
#也可以用np.bincount(img_gray.ravel(),minlength = 256),要设置minlength为256
#绘制直方图
#1.使用Matplotlib
plt.hist(img.ravel(),256,[0,256])
plt.show()
#2.使用matplotlib的法线图(比较适合BGR图)
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('G:\\sundries\\CVpictures\\pocketmon2.jpg')
color = ('b','g','r')
#先找到直方图数据
for i,col in enumerate(color):
 histr = cv.calcHist([img],[i],None,[256],[0,256])
 plt.plot(histr,color = col)
 plt.xlim([0,256])
plt.show(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值