首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >OpenCV工作流SDK之模板匹配

OpenCV工作流SDK之模板匹配

作者头像
OpenCV学堂
发布2026-04-02 21:39:53
发布2026-04-02 21:39:53
810
举报
工作流介绍

OpenCV工作流SDK介绍与下载地址

代码语言:javascript
复制
https://gitee.com/opencv_ai/opencv_workflow

C++SDK配置与演示

下载C++ SDK开发包,下载地址

代码语言:javascript
复制
https://gitee.com/opencv_ai/opencv_workflow

解压缩开发包

图片
图片

打开VS2022,配置包含目录

代码语言:javascript
复制
D:\vcworkspaces\oemts_workflow_engine_lib\include\oemts

配置库目录

代码语言:javascript
复制
D:\vcworkspaces\oemts_workflow_engine_lib\lib

直接编译提供的示例代码,然后把oemts_workflow_engine.dll 文件放到项目生成目录下即可运行exe,运行结果如下:

图片
图片

完整的示例代码如下:

图片
图片

特别提醒:

请先配置好OpenCV4.10 C++依赖。

边缘模板匹配演示

首先配置好开发环境,OpenCV工作流最新版本依赖于OpenCV4.10,所以先配置好OpenCV4.10 C++ 开发环境,然后配置好OpenCV工作流。首先加载工作流配置文件

代码语言:javascript
复制
// load opencv workflow sdk
std::shared_ptr<QTongCoreCVWorkFlow> engine(new QTongCoreCVWorkFlow());
bool succ = engine->initWorkFlow("D:/python/opencv_workflow/template_demo.vm", 
"ba8e9ea82fb37f1722ad2d9f4962e7e4");
if (!succ) {
  std::cout << "Could not load workflow file here..." << std::endl;
  return -1;
}

然后加载测试图像并显示

代码语言:javascript
复制
//  image view
cv::Mat frame = cv::imread("D:/images/vm_test/target.bmp");
cv::imshow("OpenCV学堂-模板匹配", frame);

调用查询模板匹配结果

代码语言:javascript
复制
// query matched boxes information
auto boxes = engine->getMatchedBoxInfos();

完整的源代码如下:

代码语言:javascript
复制
#include "main_workflow.h"
#include <iostream>
#include <fstream>"
int main(int argc, char** argv) {
    // load opencv workflow sdk
    std::shared_ptr<QTongCoreCVWorkFlow> engine(new QTongCoreCVWorkFlow());
    bool succ = engine->initWorkFlow("D:/python/opencv_workflow/my_test.vm", 
                                                "ba8e9ea82fb37f1722ad2d9f4962e7e4");
    if (!succ) {
        std::cout << "Could not load workflow file here..." << std::endl;
        return -1;
    }
    //  image view
    cv::Mat frame = cv::imread("D:/python/opencv_workflow/target.bmp");
    cv::namedWindow("OpenCV学堂-边缘匹配", cv::WINDOW_NORMAL);
    cv::imshow("OpenCV学堂-边缘匹配", frame);
    // measure with caliper sdk
    cv::Mat result;
    std::vector<std::string> logs;
    engine->run_workflow(frame, result, logs);
    cv::namedWindow("OpenCV学堂-边缘匹配结果", cv::WINDOW_NORMAL);
    cv::imshow("OpenCV学堂-边缘匹配结果", result);
    cv::waitKey(0);
    cv::destroyAllWindows();
    return 0;
}

运行结果如下:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档