在屏幕截图中找到信标图像位置的有效方法

时间:2013-10-18 21:28:16

标签: java opencv screenshot javacv image-recognition

我的java.awt.Robot截图是java.awt.image.BufferedImage,并知道该截图中将有一个独特的10x10纯红色(相同RGB)彩色方块 可能更接近中间。)

找到坐标的有效方法是什么? JavaCV甚至是正确的库吗?我在.net中发现了一种蛮力方法:Bitmap Detection但我想知道是否有更好的方法。

1 个答案:

答案 0 :(得分:0)

第一个问题是,识别颜色需要什么 - 它是一个精确的RGB值,其中颜色是完全匹配,还是不是?如果图像是有损压缩的,例如JPEG格式,那么情况仍然如此吗?

假设你可以这样做,可能你想进行一次搜索,试图最大限度地减少搜索那些效果不佳的区域所花费的时间:在两个相对角之间的假想线上,测试每个角落和中点的值;如果不匹配,请尝试中点和角点之间的中点;如果不匹配,则将空间垂直或水平分成两半再试一次;一旦找到了正确颜色的像素,就会有一些代码在每个方向上走像素,以确定它是否真的是10x10。

任何类型的搜索模式都可行;您可能不想要的是一种情况,您只需从0,0开始并转到0,1 0,2 ... 1,0 1,2,因为这将使左上角的快速和右下角的匹配变慢(假设从左上角开始的坐标空间。)