当前位置: 首页 > news >正文

Rust 模板匹配——根据指定图片查找处于大图中的位置(支持GPU加速)

Rust 模板匹配——根据指定图片查找处于大图中的位置(支持GPU加速)

01 前言

在手搓RPA工具的时候,总会碰到不好定位的情况,那么,就需要根据小图来找到对应屏幕上的位置(以图识图),这个需求也比较简单。想到市面上也有不少RPA工具都有这个功能,那么人家有的,俺也可以有。
为了性能好一些,考虑C++Rust的实现方案。先用C++折腾了一番,各种原因吧,没弄成,又不太想用opencv(只想单纯封装一个以图识图的功能,用它可能连带搞出来一大坨,不是很喜欢,越简单越好)。于是转到Rust试试,水平有限,也折腾了不少时间。
先用了imageproc库(传送)试了,可能姿势不对,贼慢,受不了。
于是又找了半天,看到一个还比较合适的:template_matching(传送),还支持GPU加速,中间也碰到比较坑的问题,不过嘎嘎香。

02 正文

开发环境:

Windows 11 64bit
VS Code

Cargo.toml 配置:

[package]
name = "find-image"
version = "0.1.0"
edition = "2021"[dependencies]
image = { version = "0.25.5", optional = true }
template-matching = { version = "0.2.0", features = ["image"] }[features]
default = ["image"] 
image = ["dep:image"]

main.rs 内容:

use std::time::Instant;use image::{DynamicImage, GenericImageView};
use template_matching::{find_extremes, MatchTemplateMethod, TemplateMatcher,Image};use std::env;
use std::f32;
use std::path::PathBuf;/*** 参数* full_image_path:大图的全路径* part_image_path:小图的全路径*/
struct TemplateMatchingArgs {full_image_path: PathBuf,part_image_path: PathBuf,
}/*** 解析参数*/
impl TemplateMatchingArgs {fn parse(args: Vec<String>) -> TemplateMatchingArgs {if args.len()<
http://www.lryc.cn/news/484701.html

相关文章:

  • JVM详解:类的加载过程
  • Python →爬虫实践
  • Visitor 访问者模式
  • Mac解压包安装MongoDB8并设置launchd自启动
  • Springboot采用jasypt加密配置
  • 加载shellcode
  • K8S如何基于Istio实现全链路HTTPS
  • React Query在现代前端开发中的应用
  • 【HAProxy09】企业级反向代理HAProxy高级功能之压缩功能与后端服务器健康性监测
  • PostgreSQL中表的数据量很大且索引过大时怎么办
  • 【QML】QML多线程应用(WorkerScript)
  • 认证鉴权框架SpringSecurity-1--概念和原理篇
  • 计算器上的MC、MR、M+、M—、CE是什么意思?
  • 无人机飞手执照处处需要,森林、石油管道、电力巡检等各行业都需要
  • 计算机网络——路由选择算法
  • 【前端】技术演进发展简史
  • 深入解析贪心算法及其应用实例
  • 电子工牌独立双通道定向拾音方案(有视频演示)
  • 举例理解LSM-Tree,LSM-Tree和B+Tree的比较
  • React Native 全栈开发实战班 - 核心组件与导航
  • Leecode热题100-35.搜索插入位置
  • 密码学知识点整理二:常见的加密算法
  • Linux如何将文件或目录打成rpm包?-- rpmbuild打包详解
  • RabbitMQ-死信队列(golang)
  • 爬虫开发工具与环境搭建——环境配置
  • 15.UE5等级、经验、血条,魔法恢复和消耗制作
  • 【Homework】【5】Learning resources for DQ Robotics in MATLAB
  • vue3中 ref和reactive的区别
  • 第十四章 Spring之假如让你来写AOP——雏形篇
  • 群控系统服务端开发模式-应用开发-前端个人资料开发