Opencv_Python_9_图像直方图(histogram)
2018-03-22 20:30
260 查看
方法一:使用matplotlib包
.ravel():array类型对象的方法,ravel函数将多维数组降为一维,仍返回array数组,元素以列排列。
plt.hist(x, bins=10, range=None, normed=False,
weights=None, cumulative=False, bottom=None,
histtype=u’bar’, align=u’mid’, orientation=u’vertical’,
rwidth=None, log=False, color=None, label=None, stacked=False,
hold=None, **kwargs)
各参数的意义为:
x:这个参数是指定每个bin(箱子)分布的数据,对应x轴
bins:这个参数指定bin(箱子)的个数,也就是总共有几条条状图
range:指定直方图展示的范围,对应x轴
方法二:使用opencv库中画直方图的方法cv.calcHist()
cv.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) # 返回hist
各参数表示的意义为:
images:必须用方括号括起来;
channels:是用于计算直方图的通道;
Mask: 默认None;
histSize:表示这个直方图分成多少份(即多少个直方柱);
ranges:表示直方图中各个像素的值。
from matplotlib import pyplot as plt
def plot_demo(image): plt.hist(image.ravel(), 255) # plt.hist(image.ravel(), 255, range=[0, 256]) plt.show("直方图")
.ravel():array类型对象的方法,ravel函数将多维数组降为一维,仍返回array数组,元素以列排列。
plt.hist(x, bins=10, range=None, normed=False,
weights=None, cumulative=False, bottom=None,
histtype=u’bar’, align=u’mid’, orientation=u’vertical’,
rwidth=None, log=False, color=None, label=None, stacked=False,
hold=None, **kwargs)
各参数的意义为:
x:这个参数是指定每个bin(箱子)分布的数据,对应x轴
bins:这个参数指定bin(箱子)的个数,也就是总共有几条条状图
range:指定直方图展示的范围,对应x轴
方法二:使用opencv库中画直方图的方法cv.calcHist()
def image_demo(image): color = ('blue', 'green', 'red') for i, color in enumerate(color): hist = cv.calcHist([image], channels=[i], mask=None, histSize=[256], ranges=[0, 255]) plt.plot(hist, color=color) plt.xlim([0, 255]) # plt.xticks() 设置x轴刻度的表现方式 # plt.xlim() 设置x轴刻度的取值范围 plt.show("图像直方图")
cv.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) # 返回hist
各参数表示的意义为:
images:必须用方括号括起来;
channels:是用于计算直方图的通道;
Mask: 默认None;
histSize:表示这个直方图分成多少份(即多少个直方柱);
ranges:表示直方图中各个像素的值。
print("......hello world ! ......") src = cv.imread("images/image1.jpg") cv.namedWindow("input image", cv.WINDOW_AUTOSIZE) cv.imshow("input image", src) plot_demo(src) image_demo(src) cv.waitKey(0) cv.destroyAllWindows()
相关文章推荐
- Python OpenCV学习笔记之:计算彩色图像各通道的直方图及图像区域直方图
- Python OpenCV学习笔记之:灰度图像的直方图计算
- OpenCV-绘制图像的像素直方图-Histogram
- Python-OpenCV 处理图像(四):图像直方图和反向投影
- 【Python OpenCV】图像直方图 calcHist方法 equalizeHist方法
- opencv-python绘制图像颜色直方图
- Python下opencv使用笔记(九)(图像直方图)
- Python-OpenCV 处理图像(四)(五):图像直方图和反向投影 图像中边界和轮廓检测
- Opencv Python版学习笔记(一)图像直方图
- Python OpenCV处理图像之图像直方图和反向投影
- Python3与OpenCV3.3 图像处理(十一)--图像直方图
- Python OpenCV学习笔记之:图像直方图反向投影(backprojection)原理简单实现
- Python3与OpenCV3.3 图像处理(十二)--图像直方图应用
- Python语言opencv使用笔记(九)(图像直方图)
- openCV—Python(8)—— 图像直方图及其直方图均衡化
- Python OpenCV学习笔记之:图像直方图反向投影
- python opencv对图像进行旋转且不裁剪图片的方法
- OpenCV3计算机视觉Python语言实现(三):使用OpenCV3处理图像
- python opencv旋转图像(保持图像不被裁减)
- 【图像处理】Ubuntu安装OpenCV 3.0以及Python接口