python动态加载小图呈现大图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python动态加载小图呈现大图相关的知识,希望对你有一定的参考价值。

参考技术A 网络的问题。多数是网络连接异常导致。
1、首先打开电脑检查网络。
2、其次打开python进行测试网络连接是否异常。
3、最后点击动态加载重新进入即可。

AI 之 OpenCvSharp 大图找小图(案例版)

要说跟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

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

以上是关于python动态加载小图呈现大图的主要内容,如果未能解决你的问题,请参考以下文章

从useEffect动态呈现样式表?

图片轮播-swiper动态加载

性能优化的几个小点

动态加载字体

如何动态加载css文件

python爬取iframe动态加载的内容