【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示

简介: 【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示

OpenCV开发痛点

传统图像算法开发最好的开源解决方案是OpenCV视觉库,但是OpenCV中收录了2000+的传统算法,包含上百个模块。实际常用的只有二十几个模块里面的相关算法与算子在工程项目中会被高频使用,掌握这些模块,就能够像拼积木跟玩乐高一样,设计不同的传统图像处理算法流程,完成不同图像预处理与图像分析、模板匹配等操作。但是对于OpenCV开发者来说,每次项目开发都要重写大量代码,开发效率依然低下,项目试错成本依然很高,交付效率仍然不高,OpenCV在快速交付项目上面临难题。


OpenCV实验大师工具软件

现在这道难题的解决出现了曙光,OpenCV实验大师工具软件 支持零代码设计OpenCV算法工程流程,保存工作流程,快速实现OpenCV算法设计与流程验证,帮助OpenCV开发者提升开发效率。


正所谓 “行百里者半九十”,OpenCV实验大师工具软件解决了OpenCV算法设计与流程验证的第一道门槛,但是在工作流设计与客户端上位机软件集成调用,依然存在OpenCV开发鸿沟,如今OpenCV实验大师工作流引擎 C++ SDK 完成了这最后一关,实现了OpenCV算法开发从设计、工作流验证、工作流导出、工作流C++部署运行的完整闭环。

图片

我可以很自豪的说,80%的OpenCV开发工作不用写一行代码就可以实现与C++ QT等上位机集成,OpenCV开发的工作效率将提升十倍,绝大数OpenCV可以完成的应用场景中,都可以实现OpenCV算法零代码极速交付。

C++工作流引擎支持

已经QT实现的一个简单OpenCV实验大师工作流引擎集成应用界面演示程序,就可以零代码支持以下功能:

-找圆
-找线段
-找Blob
-找角点
-模板匹配
-颜色识别
-廓分析
-面积测量
-形态学操作
-图像增强
-色彩转换

演示代码非常简单,首先加载工作流程设计文件,然后在调用工作流引擎C++ 接口,三行代码即可实现上述全部操作。运行工作流的QT C++ 代码实现如下:

void MainWindow::run_workflow() {
    std::cout<<"run workflow engine here..."<<std::endl;
    if(image_data_path->text().isEmpty() || vm_file_path->text().isEmpty()) {
            QMessageBox::warning(this, "Warning!", "Failed to open the ONNX model...");
            return;
    }
    std::string image_file = image_data_path->text().toStdString();
    std::string vm_file = vm_file_path->text().toStdString();
    runlog_txt_editor->append("工作流文件: " + vm_file_path->text());
    runlog_txt_editor->append("输入图像: " + image_data_path->text());

    std::shared_ptr<MainWorkFlow> engine(new MainWorkFlow());
    engine->initWorkFlow(vm_file);
    cv::Mat frame = cv::imread(image_file);

    std::vector<std::string> loginfos;
    cv::Mat result;
    engine->run_workflow(frame, result, loginfos);

    for(auto one_info : loginfos) {
        runlog_txt_editor->append(QString::fromLocal8Bit(one_info.c_str()));
    }
    runlog_txt_editor->append("运行完成: " + image_data_path->text());
    cv::Mat image;
    cv::cvtColor(result, image, cv::COLOR_BGR2RGB);
    QImage img = QImage(image.data, image.cols, image.rows, image.step, QImage::Format_RGB888);
    img = img.scaled(QSize(640, 640), Qt::KeepAspectRatio);
    QPixmap mp;
    mp=mp.fromImage(img);
    target_image_label->setAlignment(Qt::AlignCenter);
    target_image_label->setPixmap(mp);
}

各种工作流运行结果如下:

从此OpenCV开发效率提升数倍,为公司项目交付轻松节省大量人力成本,提升项目交付能力。OpenCV实验大师的愿景 “Make OpenCV Development Easy” 我们一直在不断践行中……






























相关文章
|
1月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1428 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
3月前
|
算法框架/工具 C++ Python
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
224 0
|
4天前
|
算法 安全 C++
提高C/C++代码的可读性
提高C/C++代码的可读性
15 4
|
1月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
259 3
|
1月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
191 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
2月前
|
存储 计算机视觉 C++
在C++中实现Armadillo库与OpenCV库之间的数据格式转换
在C++中实现Armadillo库与OpenCV库之间的数据格式转换是一项常见且实用的技能。上述步骤提供了一种标准的方法来进行这种转换,可以帮助开发者在两个库之间高效地转移和处理数据。虽然转换过程相对直接,但开发者应留意数据类型匹配和性能优化等关键细节。
61 11
|
2月前
|
存储 计算机视觉 C++
在C++中实现Armadillo库与OpenCV库之间的数据格式转换
在C++中实现Armadillo库与OpenCV库之间的数据格式转换是一项常见且实用的技能。上述步骤提供了一种标准的方法来进行这种转换,可以帮助开发者在两个库之间高效地转移和处理数据。虽然转换过程相对直接,但开发者应留意数据类型匹配和性能优化等关键细节。
25 3
|
2月前
|
C++
继续更新完善:C++ 结构体代码转MASM32代码
继续更新完善:C++ 结构体代码转MASM32代码
|
2月前
|
C++ Windows
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
|
2月前
|
C++
2合1,整合C++类(Class)代码转换为MASM32代码的平台
2合1,整合C++类(Class)代码转换为MASM32代码的平台