肉松饼罗曼史 2021-03-09 14:30 采纳率: 42.9%
浏览 1537

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

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

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

 

小图:

大图:

 

  • 写回答

1条回答 默认 最新

  • garrib 2021-03-24 09:27
    关注

    使用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;
    }
        
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作