【零代码研发】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” 我们一直在不断践行中……






























相关文章
|
8月前
|
C++ Windows
应用程序无法正常启动(0xc0000005)?C++报错0xC0000005如何解决?使命召唤17频频出现闪退,错误代码0xC0000005(0x0)
简介: 本文介绍了Windows应用程序出现错误代码0xc0000005的解决方法,该错误多由C++运行库配置不一致或内存访问越界引起。提供包括统一运行库配置、调试排查及安装Visual C++运行库等解决方案,并附有修复工具下载链接。
2132 1
|
存储 安全 C语言
C++ String揭秘:写高效代码的关键
在C++编程中,字符串操作是不可避免的一部分。从简单的字符串拼接到复杂的文本处理,C++的string类为开发者提供了一种更高效、灵活且安全的方式来管理和操作字符串。本文将从基础操作入手,逐步揭开C++ string类的奥秘,帮助你深入理解其内部机制,并学会如何在实际开发中充分发挥其性能和优势。
|
10月前
|
API 数据安全/隐私保护 C++
永久修改机器码工具, exe一机一码破解工具,软件机器码一键修改工具【c++代码】
程序实现了完整的机器码修改功能,包含进程查找、内存扫描、模式匹配和修改操作。代码使用
|
11月前
|
C++
爱心代码 C++
这段C++代码使用EasyX图形库生成动态爱心图案。程序通过数学公式绘制爱心形状,并以帧动画形式呈现渐变效果。运行时需安装EasyX库,教程链接:http://【EasyX图形库的安装和使用】https://www.bilibili.com/video/BV1Xv4y1p7z1。代码中定义了屏幕尺寸、颜色数组等参数,利用随机数与数学函数生成动态点位,模拟爱心扩散与收缩动画,最终实现流畅的视觉效果。
1195 0
|
算法 安全 C++
提高C/C++代码的可读性
提高C/C++代码的可读性
377 4
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
3025 3
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
3983 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
2合1,整合C++类(Class)代码转换为MASM32代码的平台
2合1,整合C++类(Class)代码转换为MASM32代码的平台
继续更新完善:C++ 结构体代码转MASM32代码
继续更新完善:C++ 结构体代码转MASM32代码
|
C++ Windows
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
HTML+JavaScript构建C++类代码一键转换MASM32代码平台