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:\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 ?示例截圖

?

?

轉載于:https://www.cnblogs.com/PIESat/p/10694298.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279695.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279695.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279695.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

js的棧堆與淺拷貝、深拷貝的理解

一&#xff1a;什么是堆棧&#xff1f; 我們都知道&#xff1a;在計算機領域中&#xff0c;堆棧是兩種數據結構&#xff0c;它們只能在一端(稱為棧頂(top))對數據項進行插入和刪除。 堆&#xff1a;隊列優先,先進先出&#xff1b;由操作系統自動分配釋放 &#xff0c;存放函數的…

python面向對象基礎語言進階

在此感謝前輩們的指導&#xff1a;http://python.jobbole.com/80955/ https://www.cnblogs.com/wupeiqi/p/4766801.htmlhttps://www.cnblogs.com/paomaliuju/p/5122761.html https://www.cnblogs.com/goser/articles/7097728.html http://www.cnblogs.com/alex3714/articles/52…

ea 備份碼是什么_EA的原始訪問是什么,值得嗎?

ea 備份碼是什么EA’s Origin Access gives you access to more than 70 games, discounts, and new EA games before they’re released for a monthly (or yearly) subscription fee. But is it really worth it? EA的Origin Access可讓您訪問70多種游戲&#xff0c;打折游戲…

Https 加密原理分析

眾所周知&#xff0c;HTTP 協議通過明文傳輸&#xff0c;是不安全的。于是&#xff0c;就在 HTTP 協議的基礎上&#xff0c;進行了數據加密&#xff0c;也就誕生了 HTTPS 協議。注意&#xff0c;HTTPS 并不是一個新的協議&#xff0c;它只不過是在 HTTP 的基礎上加了一層 TLS (…

JS框架_(JQuery.js)純css3進度條動畫

百度云盤  傳送門  密碼&#xff1a;wirc 進度條動畫效果&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge,chrome1">…

如何在Android主屏幕上添加熱點快捷方式

Portable Wi-Fi hotspots on your Android phone are great, because hotel Wi-Fi usually isn’t, but toggling that hotspot on and off is a pain. Here are several easy ways to add a hotspot widget to your home screen. 您的Android手機上的便攜式Wi-Fi熱點很棒&…

提高關鍵詞排名的28個SEO技巧

28個讓關鍵詞排名明顯改觀的SEO技巧&#xff1a; 關鍵詞位置、密度、處理 URL中出現關鍵詞&#xff08;英文&#xff09; 網頁標題中出現關鍵詞&#xff08;1-3個&#xff09; 關鍵詞標簽中出現關鍵詞&#xff08;1-3個&#xff09; 描述標簽中出現關鍵詞&#xff08;主關鍵…

SQLI DUMB SERIES-16

&#xff08;1&#xff09;無論怎么輸入&#xff0c;都沒有回顯&#xff0c;但當輸入 admin")#時&#xff0c;顯示登錄成功。若通過其他方法獲取數據庫的用戶名&#xff0c;可通過這個方法登錄成功。 &#xff08;2&#xff09;獲取其他信息可用考慮時間延遲注入。方法同1…

如何在YouTube視頻上禁用注釋

YouTube has that betcha-can’t-watch-just-one appeal to it, which is why YouTube’s annoyances become so pronounced the more you use it. Many of these features, such as annotations can be permanently disabled, making for a more enjoyable viewing experience…

Linux目錄配置及應放置的內容

Linux目錄配置及應放置的內容 /bin&#xff1a;系統有很多放置執行文件的目錄&#xff0c;但/bin比較特殊。因為/bin放置的是在用戶維護模式下還能夠被操作的命令。在/bin下面的命令可以被root與一般賬號所使用&#xff0c;主要有cat,chmod,chown,date,mv,mkdir,cp,bash等常用命…

快速實現一個Http回調組件

2019獨角獸企業重金招聘Python工程師標準>>> 快速實現一個Http回調組件 一、前情回顧 ? 我們平時在使用一些庫的時候&#xff0c;會遇到一些看起來很舒服的寫法&#xff0c;用起來感覺很簡單&#xff0c;而且寫法也很優雅&#xff0c;比如OkHttp&#xff0c;或者是…

MyBatis緩存通俗易懂

1.1 mybatis緩存介紹 如下圖&#xff0c;是mybatis一級緩存和二級緩存的區別圖解&#xff1a; Mybatis一級緩存的作用域是同一個SqlSession&#xff0c;在同一個sqlSession中兩次執行相同的sql語句&#xff0c;第一次執行完畢會將數據庫中查詢的數據寫到緩存&#xff08;內…

DVbbs8.2入侵思路與總結

dvbbs8.2后比較變態&#xff0c;目前還沒有特別好的方法&#xff0c;外面有人提到一種方法就是直接上傳php文件或者其它服務器支持文件&#xff0c;這個也是一個思路&#xff0c;不過很多時候&#xff0c;單獨的服務器不會支持這么多。dvbbs禁用了asp和asp.net的上傳&#xff0…

Python基礎教程:Python pass語句詳解

2019獨角獸企業重金招聘Python工程師標準>>> Python pass 語句 Python pass是空語句&#xff0c;是為了保持程序結構的完整性。 pass 不做任何事情&#xff0c;一般用做占位語句。 Python 語言 pass 語句語法格式如下&#xff1a; 實例&#xff1a; 學習從來不是一個…

Oracle數據庫在Nokia

Nokia固然今非昔比&#xff0c;但在手機市場仍是未瘦死的駱駝&#xff0c;有關報道顯示Nokia現役的數據庫(包括Oracle、MySQL、MSSQL)達到2300套之多&#xff0c; DBA團隊共有20多人&#xff0c;平均每人100多套庫。 Grid Control在過去5年中是最主要的、也幾乎是唯一的DBA管理…

css animation動畫

css 動畫&#xff1a; 動畫是CSS3中具有顛覆性的特征之一&#xff0c;可通過設置多個節點來精確控制一個或一組動畫&#xff0c;常用來實現復雜的動畫效果. 必要元素&#xff1a;a、通過keyframes指定動畫序列&#xff1b;自動補間動畫&#xff0c;確定兩個點&#xff0c;系統會…

甘特圖看起來很生硬?教你使用智能顏色裝飾你的甘特圖!(二)

在上一篇文章中我們了解到顏色在甘特圖中也有不同的作用。其中顏色在甘特圖中扮演著三個角色&#xff0c;才能使甘特圖對用戶有意義。 顏色決定甘特圖的外觀。顏色還可以用來定義甘特圖的語義。因此&#xff0c;它們幫助用戶更快地理解甘特圖所呈現的完整且常常復雜的現實。顏色…

網絡串流_串流NFL足球的最便宜方式(無需電纜)

網絡串流Football season is almost upon us. That means one thing: expensive cable or satellite TV packages. Okay, it also means beer commercials and overpriced stadium tickets and quarterbacks trying to sell you car insurance. But in terms of immediate cost…

【高清】網絡安全思維導圖

本文轉自 是阿杰啊 51CTO博客&#xff0c;原文鏈接:http://blog.51cto.com/jschinamobile/1969018

生成函數初探

對給定序列\(\{a_{0,1,2,\cdots}\}\) 構造一個函數\(F(x)\sum_{i0,1,2,\cdots}a_if_i(x)\)&#xff0c;稱\(F(x)\)為序列\(\{a_{0,1,2,\cdots}\}\)的生成函數。其中&#xff0c;序列\(\{f_{0,1,2,\cdots}(x)\}?\)只作為標志用&#xff0c;稱為標志函數。 普通型生成函數(OGF) …