
OpenCV工作流SDK介绍与下载地址
https://gitee.com/opencv_ai/opencv_workflowC++SDK配置与演示
下载C++ SDK开发包,下载地址
https://gitee.com/opencv_ai/opencv_workflow解压缩开发包

打开VS2022,配置包含目录
D:\vcworkspaces\oemts_workflow_engine_lib\include\oemts配置库目录
D:\vcworkspaces\oemts_workflow_engine_lib\lib直接编译提供的示例代码,然后把oemts_workflow_engine.dll 文件放到项目生成目录下即可运行exe,运行结果如下:

完整的示例代码如下:

特别提醒:
请先配置好OpenCV4.10 C++依赖。
边缘模板匹配演示
首先配置好开发环境,OpenCV工作流最新版本依赖于OpenCV4.10,所以先配置好OpenCV4.10 C++ 开发环境,然后配置好OpenCV工作流。首先加载工作流配置文件
// 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;
}然后加载测试图像并显示
// image view
cv::Mat frame = cv::imread("D:/images/vm_test/target.bmp");
cv::imshow("OpenCV学堂-模板匹配", frame);调用查询模板匹配结果
// query matched boxes information
auto boxes = engine->getMatchedBoxInfos();完整的源代码如下:
#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;
}运行结果如下:
