python画不同颜色的直方图_Python与机器视觉(x) 颜色直方图

本系列博客主要分享Python在机器视觉/计算机视觉下的编程应用

cv2包是著名的视觉库OpenCV的Python实现

颜色直方图一般用于统计图片不同通道像素强度的分布,并可以基于此来实现对比度提升、以及简单的目标识别、跟踪以及分割等任务。在openCV中集成了函数cv2.calcHist()来实现直方图的计算。

函数定义如下:

cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) → hist

其中images 可为单张或多张图像的array

channels 为要计算的通道数

mask 为图像掩膜

histSize 为直方图的柱子数量,即将数据分布在多少个区间上计数

range 为直方图取值范围

hist为返回值,不用填

accumulate 多张图的时候是否叠加

所以一般调用的时候只需要填上面四个参数,掩膜为None,范围0.0-255.0,数量255个:

hist = cv2.calcHist(img, [0], None,[256], [0.0,255.0])

1. 看一个例子

import cv2

import numpy as np

import matplotlib.pyplot as plt

#读入灰度图像并显示(imread用0参数)

img = cv2.imread('img.jpeg',0)

cv2.imshow('img',img)

cv2.waitKey()

cv2.destroyAllWindows()

接下来计算其像素亮度分布的直方图,在0~255范围内分为255级来计算

hist_255 = cv2.calcHist([img],[0], None, [256], [0.0,255.0]) #灰度图只有一个通道,通道0

#注意,img一定要加[],使其变成三维,否则则会使用第一维进行计算,即不加中括号会计算img[0,:]的直方分布

print('histrogram shape is',hist_255.shape)

plt.plot(hist_255,'gray')

plt.title('Histrogram of gray image')

plt.show()

Output: ‘histrogram shape is’, (256L, 1L)

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值