如何在 OpenCV + Visual C++ 中测量对比度
Posted
技术标签:
【中文标题】如何在 OpenCV + Visual C++ 中测量对比度【英文标题】:How To Measure Contrast in OpenCV + Visual C++ 【发布时间】:2012-11-15 12:16:27 【问题描述】:之前的问题是“如何在 OpenCV 中选择最佳对比度的图像”,但根据 @Rook 的建议,我正在更改它。
我将在我的项目中使用 OpenCV + Visual Studio 2010。我只是想知道 OpenCV 如何让我更轻松。我从视频中提取了大约一千帧,我需要找出哪个具有最佳对比度。最好,我认为最高和最低对比度之间的质量。
我一直在网上搜索参考代码,但到目前为止,我还没有找到。
更新:所以基本上,我需要测量对比度并比较图像之间的值。顺便说一句,这是通过望远镜观测火星的视频,我将使用从中提取的帧。
【问题讨论】:
在您能够量化“最佳对比度”的实际含义之前,您无法做出此选择。 “最高和最低对比度之间的质量。” 对我来说没有意义。 我认为这个词应该是介于最高值和最低值之间的“中点(?)”。谢谢 所以你的问题实际上是,“我如何计算图像的对比度?” 【参考方案1】:图像的熵用作对比度的度量。看到这个code。
熵是一个标量值,是随机性的统计量度,可用于表征输入图像的纹理。熵定义为
-sum(p.*log2(p))
其中
p
包含直方图计数。
——Matlab documentation
【讨论】:
以上是关于如何在 OpenCV + Visual C++ 中测量对比度的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual c++ 中处理 SEHException?
如何在 C++ 中的 OpenCV 3.0.0、Visual Studio 2013 中检测关键点、计算描述符并匹配这些描述符?
如何在 Visual C++ 2010 或 2008 中使用 OpenCV 2.1 访问 ip camera (compro IP50W)