
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/qtong_caliper.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/caliper_test.png");
cv::imshow("OpenCV学堂-卡尺演示", frame);调用卡尺测量SDK实现卡尺测量
// measure with caliper sdk
cv::Mat result;
cv::Vec4i data(291, 254, 118, -1);
engine->run_measure(frame, result, data);调用查询SDK获取测量结果
// query measure circle information
cv::Vec3i cinfo = engine->getMeasureCircleInfo();
std::cout << "圆心 X: " << cinfo[0] <<" 圆心 Y: "<<cinfo[1]<< std::endl;
std::cout << "圆半径: " << cinfo[2] << std::endl;完整的源代码如下:
#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/qtong_caliper.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/caliper_test.png");
cv::imshow("OpenCV学堂-卡尺演示", frame);
// measure with caliper sdk
cv::Mat result;
cv::Vec4i data(291, 254, 118, -1);
engine->run_measure(frame, result, data);
// query measure circle information
cv::Vec3i cinfo = engine->getMeasureCircleInfo();
std::cout << "圆心 X: " << cinfo[0] <<" 圆心 Y: "<<cinfo[1]<< std::endl;
std::cout << "圆半径: " << cinfo[2] << std::endl;
cv::imshow("OpenCV学堂-卡尺效果", result);
cv::waitKey(0);
cv::destroyAllWindows();
return 0;
}运行结果如下:
