【问题标题】:Detect black rectangles on white sheet from webcam video using Python OpenCV [closed]使用 Python OpenCV 从网络摄像头视频中检测白纸上的黑色矩形 [关闭]
【发布时间】:2016-05-24 07:39:14
【问题描述】:

我正在做一个关于虚拟键盘的项目。 使用网络摄像头,我想检测墙上投影键盘上的黑键(使用投影仪投影)。

键盘有黑键的白色背景 -

正如预计的那样,键盘会有一些连续的移动,虽然很小。 根据我的理解,我将不得不检测这个白色矩形,然后为每一帧进一步检测其中的黑键。

你能告诉我这是否正确吗? 我该如何使用 Python 和 OpenCV 来解决这个问题?

谢谢!

【问题讨论】:

    标签: python opencv keyboard tracking detection


    【解决方案1】:

    我想你想创建一个功能正常的投影键盘。如果是这种情况,您实际上需要首先映射网络摄像头图像中投影键的位置。然后在同一图像中检测“按下”位置。通过比较这两个信息,您将被允许“检测”“按键”。首先,由于检测“按下”位置更难,你想怎么做? (然后我会告诉你可以做些什么来映射键位置)(这是一个非常高级的项目)

    【讨论】:

    • 是的,我想这样做。但第一个困难是将键盘作为网络摄像头的输入,分别检测黑键(矩形)并存储它们的坐标(比如文件中的质心)。我在 MATLAB 中使用过这种方法。如何从网络摄像头视频中逐帧输入并对其应用矩形检测?
    • 我将尝试使用手指上的红色带检测“按键”。通过可能减去后续帧并仅过滤红色。围绕它创建一个盒子并取其质心。所以这两个质心今后可以进行比较
    • 对于这个任务,你可以使用类 Blobdetector learnopencv.com/blob-detection-using-opencv-python-c 但我发现通过投影一个众所周知的模式来映射“投影图像坐标与源图像坐标函数”更好,然后做一个“碰撞检测”在projectedToSourcePOS(pressed pos) 和“sources keys colisions box”之间进行
    • 所以你是说使用预存的图片?那将是更好的做法,但我想让这个项目可移动。我的意思是——每次我们使用它时,键盘的大小和投影位置都会有所不同。它会动态。所以我不能预先存储坐标。它必须在每次使用时重新映射按键,然后进行按键检测
    • 如果编码得当,校准会非常快,但这是事实,您必须在每次移动时进行校准。这种方法的目标是提高精度。
    猜你喜欢
    • 2012-12-09
    • 2021-09-13
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 2012-01-27
    相关资源
    最近更新 更多