关于cv:恒源云CV领域有关直方图的论文小记
文章起源 | 恒源云社区(恒源智享云) 原文地址 | 直方图 原文作者 | instter 学习指标把握图像的直方图计算和显示理解掩膜的利用相熟直方图均衡化,理解自适应均衡化1 灰度直方图1.1 原理直方图是对数据进行统计的一种办法,并且将统计值组织到一系列实现定义好的 bin 当中。其中, bin 为直方图中常常用到的一个概念,能够译为 “直条” 或 “组距”,其数值是从数据中计算出的特色统计量,这些数据能够是诸如梯度、方向、色调或任何其余特色。 图像直方图(Image Histogram)是用以示意数字图像中亮度散布的直方图,标绘了图像中每个亮度值的像素个数。这种直方图中,横坐标的左侧为较暗的区域,而右侧为较亮的区域。因而一张较暗图片的直方图中的数据多集中于左侧和两头局部,而整体亮堂、只有大量暗影的图像则相同。留神:直方图是依据灰度图进行绘制的,而不是彩色图像。 假如有一张图像的信息(灰度值 0 - 255,已知数字的范畴蕴含 256 个值,于是能够按肯定法则将这个范畴宰割成子区域(也就是 bins)。如: \( \left[0,255\right] = \left[0,15\right]\bigcup\left[16,30\right]\cdots\bigcup\left[240,255\right] \) 而后再统计每一个 bin(i) 的像素数目。能够失去下图(其中 x 轴示意 bin,y 轴示意各个 bin 中的像素个数): 直方图的一些术语和细节: dims:须要统计的特色数目。在上例中,dims = 1 ,因为仅仅统计了灰度值。bins:每个特色空间子区段的数目,可译为 “直条” 或 “组距”,在上例中, bins = 16。range:要统计特色的取值范畴。在上例中,range = [0, 255]。直方图的意义: 直方图是图像中像素强度散布的图形表达方式。它统计了每一个强度值所具备的像素个数。不同的图像的直方图可能是雷同的1.2 直方图的计算和绘制咱们应用OpenCV中的办法统计直方图,并应用matplotlib将其绘制进去。API: cv2.calcHist(images,channels,mask,histSize,ranges[,hist[,accumulate]])参数: images: 原图像。当传入函数时应该用中括号 [] 括起来,例如:[img]。channels: 如果输出图像是灰度图,它的值就是 [0];如果是彩色图像的话,传入的参数能够是 [0],[1],[2] 它们别离对应着通道 B,G,R。mask: 掩模图像。要统计整幅图像的直方图就把它设为 None。然而如果你想统计图像某一部分的直方图的话,你就须要制作一个掩模图像,并应用它。(后边有例子)histSize:BIN 的数目。也应该用中括号括起来,例如:[256]。ranges: 像素值范畴,通常为 [0,256]示例:如下图,绘制相应的直方图 ...