要说跟AI扯上啥关系,估计只有库本身了,但是,这个大图搜小图功能还是不错的,有喜欢的可以试试。我主要用的场景是,具体的某个界面为大图,界面的某个图标为小图,或者,整个桌面为大图,某个小图标为小图这样来确定某个插件或者功能的位置。

之前也写了一下基于C#代码的找图,但是感觉效率不高,这次做个基于OpenCvSharp的找图功能,有喜欢的可以尝试下。

创建一个Winfrom项目

因为项目示例简单,但是,又需要获取桌面大小,得创建这样的项目。

要添加Nuget包

Install-Package OpenCvSharp4.Windows -Version 4.6.0.20220608

查找主要业务代码

public static Rectangle Find(Image sourceImage, Image matchImage, double threshold = 0.8)
{var refMat = Mat.FromImageData(ImageHelper.ImageToBytes(sourceImage), ImreadModes.AnyColor);//大图var tplMat = Mat.FromImageData(ImageHelper.ImageToBytes(matchImage), ImreadModes.AnyColor);//小图using (Mat res = new Mat(refMat.Rows - tplMat.Rows + 1, refMat.Cols - tplMat.Cols + 1, MatType.CV_32FC1)){Mat gref = refMat.CvtColor(ColorConversionCodes.BGR2GRAY);Mat gtpl = tplMat.CvtColor(ColorConversionCodes.BGR2GRAY);Cv2.MatchTemplate(gref, gtpl, res, TemplateMatchModes.CCoeffNormed);Cv2.Threshold(res, res, 0.8, 1.0, ThresholdTypes.Tozero);double minval, maxval;Point minloc, maxloc;Cv2.MinMaxLoc(res, out minval, out maxval, out minloc, out maxloc);if (maxval >= threshold){return new Rectangle(maxloc.X, maxloc.Y, tplMat.Width, tplMat.Height);}return Rectangle.Empty;}
}

可以根据相似度来实现搜索,其实如果直接屏幕截图的话,相似度都是0.99,还挺不错的。

多图结果返回的话,想研究的大佬,可以研究研究。

效果

可以看到查找速度还是很快的,当然,第一次可能会稍微慢点,近200毫秒了

总结

这个案例搞定,就意味着往WEB 页面滑动图解锁验证 自动化又前进了一步,后面想想如何做这个案例。

代码地址

https://github.com/kesshei/SearchImageDemo.git

https://gitee.com/kesshei/SearchImageDemo.git

一键三连呦!,感谢大佬的支持,您的支持就是我的动力!

AI 之 OpenCvSharp 大图找小图(案例版)相关推荐

  1. java实现自动识别验证码并自动填写提交(调用百度通用文字识别OCR接口+大图找小图之图像识别算法+模拟鼠标键盘动作)

    一.使用的技术: 1.调用百度AI通用文字识别OCR接口 2.图像识别算法 二.实现方案与步骤: 1.得到验证码的图片的坐标:先将验证码截图,然后再对整个电脑屏幕截图,通过大图找小图的方法,计算出小图 ...

  2. 大图找小图,模糊识别?python

    大图找小图2.0 之前写过截屏的大图找小图,但是,那个仅限于像素没有变化的情况下,如果说我用相机拍下我的桌面,想去寻找一个图标,上一个方法是行不通的. 思路 1.对两张图片进行图像金字塔的处理,当需要 ...

  3. Java找图 (截屏找图 大图找小图)--自己实现“按键精灵”

    最近老板给了个需求是要做一个在安卓模拟器上自动扫码支付的程序,本来以为用Appium就可以直接直接搞定的,但是最后发现Appium只能操作App,在模拟器的实际运行中App要进入扫码功能,还要点击安卓 ...

  4. php 大图找小图,点击小图弹出大图,点击网页任何部分隐藏大图

    点击小图弹出大图,点击网页任何部分隐藏大图 left: 0; right: 0; display:none; bottom: 0; background-color: #000; opacity: . ...

  5. python 从大图中找小图

    #python 从大图中找小图 今天突然想到这样的问题,找了一下,没找到解决方法,自己想试一试就做了一个,但是感觉太白痴,但是运行的时候也不是说要很久. #!/usr/bin/env python3 ...

  6. opencv 大图中找小图,并点击小图

    opencv 大图(当前页面)找小图(需要点击的地方),主要方法(cv.matchTemplate) import aircv as ac from PIL import ImageGrab impo ...

  7. 一周AI新闻 | 追踪眼球找BUG,AI可从眼球运动中学习

     追踪眼球找 BUG   AI 智能体可从眼球运动中学习  「 程序员的眼里有什么? 」 人类在从事认知要求高的任务时所做的眼球运动其实暗藏很多沟通.而一个有经验的程序员会将注意力放在程序的信息部分以 ...

  8. ai包装插件_找AI插件很费劲,一次给你66款AI插件合集!每一款都是设计师常用...

    作为设计师我们都知道,PS插件很常见也很多,但AI的却不好找,但其实Adobe Illustrator软件除了能够绘制高精度的矢量图之外,也可以为线稿提供较高的精度和控制,适合生产任何小型设计到大型的 ...

  9. 伯禹公益AI《动手学深度学习PyTorch版》Task 03 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 03 学习笔记 Task 03:过拟合.欠拟合及其解决方案:梯度消失.梯度爆炸:循环神经网络进阶 微信昵称:WarmIce 过拟合. ...

最新文章

  1. ubuntu14.04系统扩容的方法
  2. 不能用了 重装系统git_重装新版gitlab时遇到gitlab-rails database初始化失败
  3. java集合:LinkedList
  4. 服务器维护菜单,Romley平台BIOS常用操作
  5. python--numpy
  6. JavaScript 开发者年度调查报告(2016-01)
  7. 多线程编程2-NSOperation
  8. DevOps通用及版本控制面试题
  9. 美化版彩虹自助下单程序注册登录页源码
  10. jQuery版Ajax的使用
  11. 怎么编写java_程序员学编程第一步:手把手教你开发第一个Java程序
  12. 10A 的GROUP和CUI使用
  13. jQuery基础简介
  14. 力士乐伺服电机编码器调零_伺服电机编码器安装拆卸方法
  15. 超级详细-NMOS、PMOS的工作原理及相关内容整理(下)
  16. c程序设计语言第五单元,一年级语文下册第五单元教案
  17. 如何快速增加NFC能力到任何应用程序
  18. 阿里云-设置远程桌面连接
  19. JS 对象转换为数组
  20. 头脑风暴:当我分析了我的经历后

热门文章

  1. 艾美捷ProSci丨ProSci 40S核糖体蛋白S19重组蛋白介绍
  2. B2G:来自Web平台的挑战者
  3. 设置IE主页的几种方法
  4. 20世纪英国癌症三级预防研究
  5. Dubbo的示例文档
  6. UCOSII 移植文件详解——笔记
  7. 云服务器有什么优势和特点?
  8. 学生用计算机调整小数点后位数,计算器怎么改小数点位数
  9. 墨西哥区域相关的西班牙语日期的处理方案。。
  10. 异常图标导致转码失败