【发布时间】:2019-12-20 12:27:40
【问题描述】:
我正在为赌场监控软件编写一个模块。
一点上下文:
我从不同时间提取的视频中提取了几张图像。我有一个参考甲板,总是在一个我知道大小的固定位置。假设畸变、相机焦距和距离未知(这将是商业销售的软件包,因此这些参数未知)。
目前工作:
我已经应用了精巧的边缘检测和轮廓线来获得两个甲板的像素高度。前面甲板所有角的坐标也是已知的,因为它始终处于相同方向的固定位置。
当参考平台与我尝试测量的平台距离不同但更靠近相机时,问题就开始了。在这种情况下,由于其中一副牌更靠近相机,两副牌可能看起来具有相同的像素高度,尽管后面的那张包含更多卡片。
这是一个视觉示例:
实际上,两副牌都有 52 张卡片,但靠近相机的那张尺寸为 83 像素,而后面的那张尺寸为 63 像素。
如何规范化我在后台参考牌组的值?我发现了一个问题,它在图像内移动时计算大小,但这使用了我不熟悉的 openGL (How do I reverse-project 2D points into 3D?)。我正在尝试在 Python 中使用计算机视觉/图像处理库(我目前使用 ImageMagick 来处理精明的边缘和霍夫线)来实现这一点(如果您认为 python 不合适,我愿意接受有关使用另一种编程语言的建议)。
编辑:
总结我想要实现的目标:我想知道这两个对象如何比较高度。我如何将后面的那个缩放为与前面那个相邻的大小,以便我可以比较两者?
【问题讨论】:
-
很可能,您想使用变换进行缩放。因此,如果您知道卡片的背面并且可以找到转乘飞机的路线,您就可以估计到相机的距离。将距离作为归一化因子。对于仿射变换和自动拟合,请查看例如卢卡斯-卡纳德。
-
@Dschoni 谢谢您的回复。您能否详细说明如何找到到 plave 的转移并估计到相机的距离?
标签: python math image-processing computer-vision photogrammetry