我想,在通道V为Value的情况下, HSV颜色模型将对您的问题有用:
“值是颜色的亮度,并随颜色饱和度的变化而变化。范围为0到100%。当值为'0'时,颜色空间将变为全黑。随着该值的增加,颜色空间的亮度将升高,并且显示各种颜色。”
因此,请使用OpenCV方法cvCvtColor (const CvArr * src,CvArr * dst,int代码),该方法将图像从一种颜色空间转换为另一种颜色空间。在您的情况下,代码= CV_BGR2HSV。然后计算第三通道V的直方图。
0
我想,在通道V为Value的情况下, HSV颜色模型将对您的问题有用:
“值是颜色的亮度,并随颜色饱和度的变化而变化。范围为0到100%。当值为'0'时,颜色空间将变为全黑。随着该值的增加,颜色空间的亮度将升高,并且显示各种颜色。”
因此,请使用OpenCV方法cvCvtColor (const CvArr * src,CvArr * dst,int代码),该方法将图像从一种颜色空间转换为另一种颜色空间。在您的情况下,代码= CV_BGR2HSV。然后计算第三通道V的直方图。
0
我正要问同样的问题,但后来发现,类似的问题没有给出令人满意的答案。我在SO上找到的所有答案都与人类对单个像素RGB vs HSV的观察有关。
根据我的观察,图像的主观亮度也强烈取决于图案。白天,黑暗天空中的星星看起来比多云天空更明亮,而第一张图像的平均像素值会小得多。
我使用的图像是显微镜产生的灰度细胞图像。形式差异很大。有时它们在非常黑的背景上是小的亮点,有时在不太暗的背景上是不太亮的较大区域。
我的方法是:
比例2/3也可以增加到3/4(这会减小被认为是明亮的像素范围)。
该方法效果很好,因为具有相同滴定度的不同细胞模式会产生相似的亮度。
PS:我实际上想问的是,OpenCV或SimpleCV中是否有类似的函数用于这种计算。非常感谢您的任何评论!
0
我一直在尝试获取Opencv中的图像亮度,到目前为止,我已经使用calcHist并考虑了直方图值的平均值。但是,我认为这并不准确,因为它实际上无法确定图像的亮度。我对图像的灰度版本执行了calcHist,并试图区分从明亮图像获得的平均值与中等图像获得的平均值。到目前为止,我还没有成功。您能否通过OpenCv实现一种估计图像亮度的方法或算法来帮助我?提前致谢。