PIE SDK与OpenCV结合说明文档
1.功能簡介
OpenCV是基于BSD許可(開源)發(fā)行的跨平臺計算機視覺庫,可以運行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時提供了Python、Ruby、MATLAB等語言的接口,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。
本示例程序?qū)崿F(xiàn)了PIESDK調(diào)用OpenCV函數(shù)功能(Canny函數(shù)),生成一幅圖的邊緣圖,從而使PIE SDK可以與OpenCV緊密結(jié)合。
注意:本文的OpenCV的例子OpencvTest.exe是基于OpenCV4.1的x64的環(huán)境編譯的,不管是什么編譯環(huán)境,只要是OpenCV生成的可運行的 exe用PIESDK都可以調(diào)用起來
2. 功能實現(xiàn)說明
2.1 實現(xiàn)思路及原理說明
| 第一步 | 利用PIESDK寫一個Command類,本文是OpenCVTestCommand.cs 其類繼承PIE.Framework.DesktopCommand; |
| 第二步 | 重寫OnClick()方法進行調(diào)用OpenCV例子生成的的exe |
| 第三步 | PIESDK命令調(diào)用(PIEApplication.xml配置或者ICommand調(diào)用),本文采用的是ICommand調(diào)用 |
2.2核心接口與方法
| 接口/類 | 方法 | 說明 |
| PIE.SystemUI.ICommand | OnClick | 單擊事件 |
| OnCreate | 綁定地圖對象 |
?
2.3 示例代碼
| 項目路徑 | 百度云盤地址下/PIE示例程序/14.SDK拓展開發(fā)/ 05PIESDK與OpenCV結(jié)合/ OpenCVMapApplication |
| 數(shù)據(jù)路徑 | 百度云盤地址下/PIE示例數(shù)據(jù)/OpenCV文件 /Window7.png OpencvTest.exe |
| 視頻路徑 | 百度云盤地址下/PIE視頻教程/14.SDK拓展開發(fā)/ 05PIESDK與OpenCV結(jié)合.avi |
| 示例代碼 | |
| 1 在PIE SDK調(diào)用時的寫法 新建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結(jié)合命令 14 /// </summary> 15 class OpenCVTestCommand : DesktopCommand 16 { 17 /// <summary> 18 /// 構(gòu)造函數(shù) 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示例數(shù)據(jù)\圖片\OpencvTest.exe";// 執(zhí)行調(diào)用exe路徑 32 string[] the_args = { @"E:\Software\PIE示例教程\PIE示例數(shù)據(jù)\OpenCV文件\window7.png" };// exe執(zhí)行的參數(shù) 33 bool result = StartProcess(exe_path, the_args); 34 if (result == false) 35 { 36 System.Windows.Forms.MessageBox.Show("執(zhí)行失敗!"); 37 } 38 } 39 /// <summary> 40 /// 進程調(diào)用 41 /// </summary> 42 /// <param name="exePath">exe執(zhí)行程序調(diào)用</param> 43 /// <param name="args">參數(shù)</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();//創(chuàng)建進程對象 54 ProcessStartInfo startInfo = new ProcessStartInfo(exePath, s); // 括號里是(程序名,參數(shù)) 55 process.StartInfo = startInfo; 56 process.Start(); 57 return true; 58 } 59 } 60 } 61 注意: 62 OpenCVTestCommand.cs主要是調(diào)用opencv生成結(jié)果文件OpencvTest.exe; 63 最后一步如何在PIE搭建的程序調(diào)用OpenCVTestCommand命令呢? 64 首先在PIE搭建的界面上創(chuàng)建一個按鈕,點擊按鈕的Click事件為toolStripButton_LoadOpenCV_Click 65 /// <summary> 66 /// 調(diào)用OpenCV例子 67 /// </summary> 68 /// <param name="sender">事件觸發(fā)器</param> 69 /// <param name="e">事件參數(shù)</param> 70 private void toolStripButton_LoadOpenCV_Click(object sender, EventArgs e) 71 { 72 ICommand command = new OpenCVTestCommand(); //調(diào)用命令 73 command.OnCreate(mapControlMain); 74 command.OnClick(); 75 } View Code | |
2.4 ?示例截圖
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/PIESat/p/10694298.html
總結(jié)
以上是生活随笔為你收集整理的PIE SDK与OpenCV结合说明文档的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员笔记(知识)管理的一点经验
- 下一篇: Https 加密原理分析