zoukankan      html  css  js  c++  java
  • PIE SDK与OpenCV结合说明文档

    1.功能简介

      OpenCV是基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

      本示例程序实现了PIESDK调用OpenCV函数功能(Canny函数),生成一幅图的边缘图,从而使PIE SDK可以与OpenCV紧密结合。

      注意:本文的OpenCV的例子OpencvTest.exe是基于OpenCV4.1的x64的环境编译的,不管是什么编译环境,只要是OpenCV生成的可运行的 exe用PIESDK都可以调用起来

    2. 功能实现说明

    2.1 实现思路及原理说明

    第一步

    利用PIESDK写一个Command类,本文是OpenCVTestCommand.cs

    其类继承PIE.Framework.DesktopCommand;

    第二步

    重写OnClick()方法进行调用OpenCV例子生成的的exe

    第三步

    PIESDK命令调用(PIEApplication.xml配置或者ICommand调用),本文采用的是ICommand调用

    2.2核心接口与方法

     

    接口/类

    方法

    说明

    PIE.SystemUI.ICommand

    OnClick

    单击事件

    OnCreate

    绑定地图对象

    2.3 示例代码

    项目路径

    百度云盘地址下/PIE示例程序/14.SDK拓展开发/ 05PIESDK与OpenCV结合/ OpenCVMapApplication

    数据路径

    百度云盘地址下/PIE示例数据/OpenCV文件 /Window7.png OpencvTest.exe

    视频路径

    百度云盘地址下/PIE视频教程/14.SDK拓展开发/ 05PIESDK与OpenCV结合.avi

    示例代码

     1 在PIE SDK调用时的写法 新建OpenCVTestCommand命令类
     2 using PIE.Framework;
     3 using System;
     4 using System.Collections.Generic;
     5 using System.Diagnostics;
     6 using System.Linq;
     7 using System.Text;
     8 using System.Threading;
     9 
    10 namespace OpenCVMapApplication
    11 {
    12     /// <summary>
    13     /// PIESDK和Opencv结合命令
    14     /// </summary>
    15     class OpenCVTestCommand : DesktopCommand
    16     {
    17         /// <summary>
    18         /// 构造函数
    19         /// </summary>
    20         public OpenCVTestCommand()
    21         {
    22             this.Caption = "OpenCVTestCommand";
    23             this.Name = "OpenCVTestCommand";
    24         }
    25 
    26         /// <summary>
    27         /// 单击事件
    28         /// </summary>
    29         public override void OnClick()
    30         {
    31       string exe_path = @"E:SoftwarePIE示例教程PIE示例数据图片OpencvTest.exe";// 执行调用exe路径
    32    string[] the_args = { @"E:SoftwarePIE示例教程PIE示例数据OpenCV文件window7.png" };// exe执行的参数
    33             bool result = StartProcess(exe_path, the_args);
    34             if (result == false)
    35             {
    36                 System.Windows.Forms.MessageBox.Show("执行失败!");
    37             }
    38         }
    39        /// <summary>
    40        /// 进程调用
    41        /// </summary>
    42         /// <param name="exePath">exe执行程序调用</param>
    43        /// <param name="args">参数</param>
    44        /// <returns></returns>
    45         public bool StartProcess(string exePath, params string[] args)
    46         {
    47             string s = "";
    48             foreach (string arg in args)
    49             {
    50                 s = s + arg + " ";
    51             }
    52             s = s.Trim();
    53            Process process = new Process();//创建进程对象    
    54             ProcessStartInfo startInfo = new ProcessStartInfo(exePath, s); // 括号里是(程序名,参数)
    55             process.StartInfo = startInfo;
    56             process.Start();
    57             return true;
    58         }
    59     }
    60 }
    61 注意:
    62 OpenCVTestCommand.cs主要是调用opencv生成结果文件OpencvTest.exe;
    63 最后一步如何在PIE搭建的程序调用OpenCVTestCommand命令呢?
    64 首先在PIE搭建的界面上创建一个按钮,点击按钮的Click事件为toolStripButton_LoadOpenCV_Click
    65         /// <summary>
    66         /// 调用OpenCV例子
    67         /// </summary>
    68         /// <param name="sender">事件触发器</param>
    69         /// <param name="e">事件参数</param>
    70         private void toolStripButton_LoadOpenCV_Click(object sender, EventArgs e)
    71         {
    72             ICommand command = new OpenCVTestCommand(); //调用命令
    73             command.OnCreate(mapControlMain);
    74             command.OnClick();
    75         }
    View Code

    2.4  示例截图

     

  • 相关阅读:
    【Android Developers Training】 73. 布局变化的动画
    【Android Developers Training】 72. 缩放一个视图
    【Android Developers Training】 71. 显示翻牌动画
    svn更改地址怎么办
    python学习手册
    failed to bind pixmap to texture
    Ubuntu 12.04安装Google Chrome
    svn update 时总是提示 Password for '默认密钥' GNOME keyring: 输入密码
    重设SVN 的GNOME keyring [(null)] 的密码
    Nginx + uWSGI + web.py 搭建示例
  • 原文地址:https://www.cnblogs.com/PIESat/p/10694298.html
Copyright © 2011-2022 走看看