我正在为赌场监控软件编写一个模块。
一点上下文:
我从不同时间提取的视频中提取了几张图像。我有一个参考甲板,总是在一个我知道大小的固定位置。假设畸变、相机焦距和距离未知(这将是商业销售的软件包,因此这些参数未知)。
正在工作:
我已经应用了精明的边缘检测和水平线来获得两个甲板的像素高度。此外,前面甲板所有角的坐标也是已知的,因为它始终处于具有相同方向的固定位置。
当参考甲板与我要测量的甲板距离不同但更靠近相机时,问题就开始了。在这种情况下,由于其中一个牌组离相机更近,尽管后面的牌组包含更多卡片,但两个牌组可能看起来具有相同的像素高度。
这是一个视觉示例:
实际上,两副牌都有 52 张卡片,但靠近相机的那张为 83 像素,而后面的那张为 63 像素。
我怎样才能标准化我在后台参考甲板的值?我发现了一个问题,它在图像内移动时计算大小,但这使用了我不熟悉的 openGL(如何将 2D 点反向投影到 3D?)。我正在尝试使用 Python 中的计算机视觉/图像处理库(我目前使用 ImageMagick 用于精明的边缘和霍夫线)来实现这一点(如果您认为 python 不合适,我愿意接受有关使用另一种编程语言的建议)。
编辑:
总结我想要实现的目标:我想知道这两个对象如何比较高度。我如何将后面的那个缩放到它与前面那个相邻的大小,以便我可以比较两者?