我正在 OpenCV 中编写一个 Android 应用程序来检测 blob。一项任务是对图像进行阈值化以区分前景对象和背景(见图)。
只要图像是已知的,它就可以正常工作,并且我可以手动将阈值传递给 threshold()——在这个特定的图像中,比如 200。但是假设图像不知道,唯一的知识是会有一个黑暗纯色背景和较浅的前景对象如何动态计算阈值?
我遇到了可以计算灰度图像强度分布的直方图。但是我找不到分析直方图并选择感兴趣对象(较轻)所在的值的方法。那是; 我想将明显较暗的背景尖峰与较浅的前景尖峰区分开来——在这种情况下高于 200,但在另一种情况下,如果对象是灰色的,则可以说是 100。