使用Python,OpenCV计算图像直方图(cv2.calcHist)

更新时间:2023-07-20 18:14:59 阅读: 评论:0

使⽤Python,OpenCV计算图像直⽅图(cv2.calcHist)
巾字组词使⽤Python,OpenCV计算图像直⽅图(cv2.calcHist
这篇博客将介绍如何使⽤Python,OpenCV和cv2.calcHist 计算图像直⽅图。
直⽅图算机视觉中应⽤⼴泛。
1. 使⽤灰度直⽅图进⾏阈值处理;
2. 使⽤直⽅图进⾏⽩平衡;
3. 使⽤颜⾊直⽅图来跟踪图像中的对象,例如使⽤ CamShift 算法;
4. 使⽤颜⾊直⽅图作为特征——包括多维的颜⾊直⽅图;
5. 使⽤图像梯度的直⽅图来形成 HOG 和 SIFT 描述符;
6. 在图像搜索引擎和机器学习中使⽤的极受欢迎的视觉词袋表⽰也是直⽅图!
⽽且很有可能,我敢肯定这不是您第⼀次在研究中遇到直⽅图。
为什么直⽅图如此有⽤?
因为直⽅图捕获了⼀组数据的频率分布。事实证明,检查这些频率分布是构建简单图像处理技术……以及⾮常强⼤的机器学习算法的⼀种⾮常好的⽅式。
1. 效果图
原图BGR图:
颜⾊不对,因为OpenCV读取图⽚默认Numpy是BGR通道形式,⽽matplotlib期待RGB通道的图像,所以先转换在展⽰~
原图RGB图 VS 灰度图效果如下:
灰度图 VS 灰度直⽅图 VS 归⼀化灰度直⽅图效果图如下:
归⼀化的意义可以保证:同⼀图像等⽐例缩放后,归⼀化直⽅图也相同。
从直⽅图中可以看出:落在(0~30)像素范围的像素较多,说明图像中包含有“⿊⾊”像素。
BGR-扁平化的彩⾊直⽅图如下:
2维3种组合的效果图如下:,从图中可以看到 G and R的峰值更多⼀些~,查看原始图确实红⾊和绿⾊更多⼀些。
原图 VS 蒙版区域效果图如下:
蒙版区域直⽅图如下,可以看到绿⾊、红⾊像素峰值多⼀些
2. 原理
2.1 什么是图像直⽅图?
直⽅图表⽰图像中像素强度(⽆论是彩⾊还是灰度)的分布。它可以被可视化为⼀个图形,给出了强度(像素值)分布的⾼级直觉。
假设⼀个 RGB 颜⾊空间,所有像素值将在 0 到 255 的范围内。在绘制直⽅图时,x 轴充当“bins”。如果⽤ 256 构建⼀个直⽅图bins,然后有效地计算每个像素值出现的次数。
相反,如果只使⽤ 2(等距)bins,然后计算像素在 [0, 128] 或 [128, 255] 范围内的次数。然后将合并到 x 轴值的像素数绘制在 y 轴上。
通过简单地检查图像的直⽅图,可以⼤致了解对⽐度、亮度和强度分布。
2.2 计算直⽅图
cv2.calcHist(images, channels, mask, histSize, ranges)
images 要计算直⽅图的原始图像
逐梦青春筑梦未来
channels 通道,[0]:灰度直⽅图,[0,1,2]BGR彩⾊直⽅图
mask 要为某个蒙版像素计算直⽅图,没有可设置为None
histSize x轴要分的bins个数[32,32,32],每个通道分为32个区间
凉拌油麦菜的做法
range 可能的像素范围[0,256] 因为calHist不包含后者
2.3 可视化蒙版区域
1. 构建和原图相同的⿊⾊像素图
2. 绘制⼀个矩形⽩⾊
3. 原图与蒙版图使⽤按位与来可视化图像的蒙版区域
3. 源码
# 为单通道灰度图计算直⽅图
# USAGE
# python all_histogram.py
# 导⼊必要的包
from matplotlib import pyplot as plt
import argpar
import cv2
import numpy as np
def plot_histogram(image, title, mask=None):
# 拆分图像为BGR通道,初始化每个通道的名称
chans = cv2.split(image)
我家的晚餐作文colors =("b","g","r")
plt.figure()
plt.title(title)
plt.xlabel("Bins")
plt.ylabel("# of Pixels")
# 遍历图像通道
梦见宝宝拉粑粑
for(chan, color)in zip(chans, colors):鸭子汤的做法
# 为当前通道计算直⽅图,并展⽰
hist = cv2.calcHist([chan],[0], mask,[256],[0,256])
植物写生幼儿育儿知识plt.plot(hist, color=color)
plt.xlim([0,256])
# 构建命令⾏参数及解析

本文发布于:2023-07-20 18:14:59,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1107341.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图像   像素   通道   分布   计算   蒙版   构建
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图