当前位置: 首页 > 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.mrgr.cn/news/70737.html

相关文章:

  • 鸿蒙next版开发:ArkTS组件通用属性(文本通用)
  • 华为大咖说 | 浅谈智能运维技术
  • 系统启动时将自动加载环境变量,并后台启动 MinIO、Nacos 和 Redis 服务
  • 【数据管理】DAMA-数据建模和设计
  • 【在Linux世界中追寻伟大的One Piece】多路转接epoll
  • QtWebServer
  • APP封装系统 app误报毒app可上传 自动实现5分钟随机更换包名和签名
  • VMnet NAT模式配置
  • Perfetto中如何使用SQL语句
  • MutationObserver与IntersectionObserver的区别
  • IEEE JSSC更新|Tiny Tapeout:让每个人都能设计定制芯片
  • 【C】一文速学----线程池原理与实战
  • 【计算机网络】网络框架
  • C0028.在Clion中快速生成头文件中声明的函数的方法
  • 车载诊断架构---域控下挂节点信息同步策略
  • 基于51单片机密码锁—有3个密码lcd1602显示
  • 【项目开发】RESTful架构及RESTful API设计指南
  • dapp获取钱包地址,及签名
  • js.零钱兑换
  • python:用 sklearn 转换器处理数据
  • 【C++ 篇】类之华章:超越固有模式,品味面向对象的璀璨光芒
  • OSG开发笔记(三十一):OSG中LOD层次细节模型介绍和使用
  • MySQL数据库的备份与还原
  • 大模型论文精华—20241111
  • 贪心算法day05(k次取反后最大数组和 田径赛马)
  • 3.keeplived配置文件