使用opencv / Emgucv进行屏幕检测

时间:2016-05-25 13:50:06

标签: opencv image-processing emgucv image-recognition pattern-recognition

我正在使用emgucv(c#opencv包装器)进行计算机屏幕检测。 我想检测我的计算机screnn并在其上绘制一个矩形。
为了帮助完成这个过程,我在计算机的屏幕上使用了3个红外线灯,我检测到了这一点,在检测到之后,我可以找到这3个LED以下的屏幕区域。 这是检测到3个LED后的结果。

3个红色方框是检测到的指示灯 Here is the image and description
总的来说,我有类似的东西

General case

有没有人知道我如何能够检测整个screan区域?

2 个答案:

答案 0 :(得分:0)

这只是一个建议,但如果您知道您的计算机屏幕位于LED下方,则可以尝试使用OpenCV GrabCut algorithm。在LED下面画一个矩形,大到足以包含屏幕(也许你可以从LED之间的空间猜测大小)并用它来初始化GrabCut。

让我知道你会得到什么样的结果。

答案 1 :(得分:0)

您可以尝试使用不带红外滤光片的相机(这主要是所有夜视相机),以便您可以从LED上获得更强的光,从而使其比您的显示器突出显示,这很简单。斑点检测以到达该位置。

另一种解决方案是,如果您要使用的视角不是很大,则在显示器上使用ARUCO标记,那么它应该是一个令人信服的选择,即使这样,即使相机与显示器的相对位置也可以预测出来是你想要的。通过ARUCO的检测,您可以获取显示器平面所处的角度,从而用它们估算显示区域。