PIE SDK與OpenCV結合說明文檔

1.功能簡介

  OpenCV是基於BSD許可(開源)發行的跨平臺計算機視覺庫,能夠運行在Linux、Windows、Android和Mac OS操做系統上。它輕量級並且高效——由一系列 C 函數和少許 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的不少通用算法。算法

  本示例程序實現了PIESDK調用OpenCV函數功能(Canny函數),生成一幅圖的邊緣圖,從而使PIE SDK能夠與OpenCV緊密結合。ide

  注意:本文的OpenCV的例子OpencvTest.exe是基於OpenCV4.1的x64的環境編譯的,無論是什麼編譯環境,只要是OpenCV生成的可運行的 exe用PIESDK均可以調用起來函數

2. 功能實現說明

2.1 實現思路及原理說明

第一步this

利用PIESDK寫一個Command類,本文是OpenCVTestCommand.csspa

其類繼承PIE.Framework.DesktopCommand;操作系統

第二步code

重寫OnClick()方法進行調用OpenCV例子生成的的exeorm

第三步視頻

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

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:\Software\PIE示例教程\PIE示例數據\圖片\OpencvTest.exe";// 執行調用exe路徑
32    string[] the_args = { @"E:\Software\PIE示例教程\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  示例截圖

相關文章
相關標籤/搜索