chensong8148
肉松饼罗曼史
采纳率100%
2021-03-09 14:30

java如何使用OpenCV实现大图中找小图的坐标位置

问题背景:我在做一个自动化的测试工具,通过大图找到小图的坐标,然后写入文件中或者上传到我的服务器生成一条记录,然后调用我的方法去执行点击操作,仅此而已。我查了很多资料,都有说道OpenCV,大多都是Python的,我想知道java是否也可以这样做?除此OpenCV的实现方式,是否还有其他思路可以实现我的需求,希望可以向大佬们学习。

问题描述:如下,小图是【网易云音乐】的图片,然后需要将这张图片在大图中找到它所在的坐标位置,然后返回横坐标和中坐标即可。我不知道该怎么做,还在摸索中,求大佬支招

 

小图:

大图:

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • aitiem aitiem 25天前

    使用opencv 模板定位

    int method = Imgproc.TM_CCORR_NORMED;
    int width = mat.cols() - template.cols() + 1;
    int height = mat.rows() - template.rows() + 1;
    Mat result = new Mat(width, height, CvType.CV_32FC1);
    Imgproc.matchTemplate(mat, template, result, method);
    Core.normalize(result, result, 0, 1, Core.NORM_MINMAX, -1, new Mat());
    Core.MinMaxLocResult mmr = Core.minMaxLoc(result);
    double x, y;
    if (method == Imgproc.TM_SQDIFF_NORMED || method == Imgproc.TM_SQDIFF) {
      x = mmr.minLoc.x;
      y = mmr.minLoc.y;
    } else {
      x = mmr.maxLoc.x;
      y = mmr.maxLoc.y;
    }
        
    点赞 评论 复制链接分享

为你推荐