本文主要是介绍直方图(histogram)中的bins应如何理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一个histogram,通常可以用一个列向量表示(例子中的a,b),列向量里面的每一个值就是一个bin(a,b),比如说列向量有个50个元素,那么就代表有50个bin。
对于彩色图像,一般是rgb,3个维度,每个颜色一般是0-255的灰度级,就是对应8个bin,每个维度8bin,8x8x8=512bin
256=2^8,
0-255之间的数,用8位的0,1就能表示啊
比如说,15=0000 1111,255=1111 1111
对应于彩色图像为什么是512bins呢?为什么是8*8*8=512,而不是3*8=24呢?
通俗的说,对于RGB彩色图像,图像上的每一个点,在R通道上有256种颜色,G通道上有256种颜色,B通道上也有256颜色,所以彩色图像上每个点的颜色可能有256x256x256=16777216种。。。对应的bin计算当然是8x8x8=512了
直方图是频次的累计,实际上是一种简单的概率分布,你要求的是,RGB分别为(1,1,1),(1,1,2),(1,1,3),。。。,(8,8,8)的概率。
你把RGB颜色空间,想象成一个三维立体的坐标系,rgb对应xyz轴,每个颜色8 bins,对应xyz三个轴上,8个等分刻度,这样就得到一个8x8x8=512个小立方体构成的大立方体,你要的直方图就是每个小立方体在大立方体中出现的概率分布。
你如果把他们串联起来的话,组成24bin的直方图,你得到的直方图的(概率)和为3,这显然不是你想要的直方图。
这篇关于直方图(histogram)中的bins应如何理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!