【零代码研发】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月前
|
机器学习/深度学习 算法 开发工具
【四箭齐发】OpenCV实验大师工作流引擎SDK
【四箭齐发】OpenCV实验大师工作流引擎SDK
34 1
【四箭齐发】OpenCV实验大师工作流引擎SDK
|
19天前
|
C语言 图形学 C++
|
1月前
|
C++
c++primer plus 6 读书笔记 第十四章 C++中的代码重用
c++primer plus 6 读书笔记 第十四章 C++中的代码重用
|
8天前
|
编译器 程序员 C++
【C++高阶】掌握C++多态:探索代码的动态之美
【C++高阶】掌握C++多态:探索代码的动态之美
13 0
|
1月前
|
存储 API C语言
C/C++爱心代码
C/C++爱心代码
67 2
|
16天前
|
存储 JavaScript 前端开发
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)
|
19天前
|
编译器 C语言 C++
|
1月前
|
监控 安全 计算机视觉
实战 | 18行代码轻松实现人脸实时检测【附完整代码与源码详解】Opencv、人脸检测
实战 | 18行代码轻松实现人脸实时检测【附完整代码与源码详解】Opencv、人脸检测
|
1月前
|
C++ 编译器
【C++语言】Date类的代码实现(操作符重载运用)
【C++语言】Date类的代码实现(操作符重载运用)
|
2月前
|
JavaScript Java Maven
云效产品使用常见问题之android sdk 构建出aar后,上传到私有maven仓库失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。