估计图像的亮度Opencv
computer-vision
image-processing
opencv
5
0

我一直在尝试获取Opencv中的图像亮度,到目前为止,我已经使用calcHist并考虑了直方图值的平均值。但是,我认为这并不准确,因为它实际上无法确定图像的亮度。我对图像的灰度版本执行了calcHist,并试图区分从明亮图像获得的平均值与中等图像获得的平均值。到目前为止,我还没有成功。您能否通过OpenCv实现一种估计图像亮度的方法或算法来帮助我?提前致谢。

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

我想,在通道V为Value的情况下, HSV颜色模型将对您的问题有用:

“值是颜色的亮度,并随颜色饱和度的变化而变化。范围为0到100%。当值为'0'时,颜色空间将变为全黑。随着该值的增加,颜色空间的亮度将升高,并且显示各种颜色。”

因此,请使用OpenCV方法cvCvtColor (const CvArr * src,CvArr * dst,int代码),该方法将图像从一种颜色空间转换为另一种颜色空间。在您的情况下,代码= CV_BGR2HSV。然后计算第三通道V的直方图。

收藏
评论

我正要问同样的问题,但后来发现,类似的问题没有给出令人满意的答案。我在SO上找到的所有答案都与人类对单个像素RGB vs HSV的观察有关。

根据我的观察,图像的主观亮度也强烈取决于图案。白天,黑暗天空中的星星看起来比多云天空更明亮,而第一张图像的平均像素值会小得多。

我使用的图像是显微镜产生的灰度细胞图像。形式差异很大。有时它们在非常黑的背景上是小的亮点,有时在不太暗的背景上是不太亮的较大区域。

我的方法是:

  • 使用去除热像素的阈值找到直方图最大值(HMax)。
  • 计算HMax * 2/3和HMax之间的所有像素的平均值

比例2/3也可以增加到3/4(这会减小被认为是明亮的像素范围)。

该方法效果很好,因为具有相同滴定度的不同细胞模式会产生相似的亮度。

PS:我实际上想问的是,OpenCV或SimpleCV中是否有类似的函数用于这种计算。非常感谢您的任何评论!

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号