我试图想出一种方法来让Sikuli的图像识别在C#中使用.我不想使用Sikuli本身,因为它的脚本语言有点慢,因为我真的不想在我的.NET C#app中引入一个java桥.
所以,我有一个代表我的屏幕区域的位图(我将这个区域称为BUTTON1).屏幕布局可能略有变化,或者屏幕可能已在桌面上移动 - 因此我无法使用直接位置.我必须首先找到BUTTON1 的当前位置在实时屏幕内的位置.(我试图发布这个图片,但我想我不能,因为我是一个新用户...我希望描述清楚......)
我认为Sikuli正在使用OpenCV.由于它是开源的,我想我可以对它进行逆向工程,并弄清楚如何在OpenCV中做他们正在做的事情,而不是在Emgu.CV中实现它 - 但我的Java不是很强大.
我查找了显示此示例的示例,但所有示例都非常简单(即,如何识别停止标志)或非常复杂(即如何进行面部识别)......也许我只是密集,但我可以似乎在如何做到这一点的逻辑上跳了起来.
另外我担心所有各种图像处理程序实际上都是处理器密集型的,我真的希望它尽可能轻量级(实际上我可能有很多按钮和字段,我试图在屏幕上找到......)
所以,我正在考虑这样做的方式是:
A)将位图转换为字节数组并执行强力搜索.(我知道该怎么做).然后
B)使用我找到的字节数组位置来计算它的屏幕位置(我真的不完全确定我是怎么做的)而不是使用图像处理的东西.
这完全是疯了吗?有没有人有一个简单的例子说明如何使用Aforge.Net或Emgu.CV来做到这一点?(或者如何充实上面的步骤B ......?)
谢谢!