【发布时间】:2018-06-13 21:37:08
【问题描述】:
我正在用 Java 编写一个程序,它可以直接从摄像头馈送中检测车牌。我使用 OpenCV 应用自适应阈值,找到轮廓,并检查每个轮廓的尺寸以确定它是否是板。这很好用,但是在根据一天中的时间进行自适应阈值处理时,我必须手动更改 AdaptiveThreshold 方法的 C 常量参数。例如,如果我在夜间使用白天的相同常量,则生成的二进制图像没有白色部分,因此不会检测到轮廓。我想知道是否有一种方法可以根据亮度和/或对比度以某种方式确定 C 常数,以便在应用阈值时,将板检测为任何光照中的轮廓。如果有帮助,我可以发布代码。
提前致谢。
【问题讨论】:
-
如果您知道与黑色像素相比您期望有多少白色像素,您可以动态计算常数。例如,假设您希望二值图像为 80% 的白色和 20% 的黑色。然后,您可以计算一个常数 C,以便满足这些条件。另一种方法是随着时间的变化凭经验改变值 C。这至少需要您的系统可以访问时间,最好是日期。
-
@Turing85 您的评论非常好,您应该将其发布为答案。
-
@sorfiend 你的愿望就是我的命令 =)
标签: java opencv image-processing