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

示例代码

 在PIE SDK调用时的写法 新建OpenCVTestCommand命令类
using PIE.Framework;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading; namespace OpenCVMapApplication
{
/// <summary>
/// PIESDK和Opencv结合命令
/// </summary>
class OpenCVTestCommand : DesktopCommand
{
/// <summary>
/// 构造函数
/// </summary>
public OpenCVTestCommand()
{
this.Caption = "OpenCVTestCommand";
this.Name = "OpenCVTestCommand";
} /// <summary>
/// 单击事件
/// </summary>
public override void OnClick()
{
string exe_path = @"E:\Software\PIE示例教程\PIE示例数据\图片\OpencvTest.exe";// 执行调用exe路径
string[] the_args = { @"E:\Software\PIE示例教程\PIE示例数据\OpenCV文件\window7.png" };// exe执行的参数
bool result = StartProcess(exe_path, the_args);
if (result == false)
{
System.Windows.Forms.MessageBox.Show("执行失败!");
}
}
/// <summary>
/// 进程调用
/// </summary>
/// <param name="exePath">exe执行程序调用</param>
/// <param name="args">参数</param>
/// <returns></returns>
public bool StartProcess(string exePath, params string[] args)
{
string s = "";
foreach (string arg in args)
{
s = s + arg + " ";
}
s = s.Trim();
Process process = new Process();//创建进程对象
ProcessStartInfo startInfo = new ProcessStartInfo(exePath, s); // 括号里是(程序名,参数)
process.StartInfo = startInfo;
process.Start();
return true;
}
}
}
注意:
OpenCVTestCommand.cs主要是调用opencv生成结果文件OpencvTest.exe;
最后一步如何在PIE搭建的程序调用OpenCVTestCommand命令呢?
首先在PIE搭建的界面上创建一个按钮,点击按钮的Click事件为toolStripButton_LoadOpenCV_Click
/// <summary>
/// 调用OpenCV例子
/// </summary>
/// <param name="sender">事件触发器</param>
/// <param name="e">事件参数</param>
private void toolStripButton_LoadOpenCV_Click(object sender, EventArgs e)
{
ICommand command = new OpenCVTestCommand(); //调用命令
command.OnCreate(mapControlMain);
command.OnClick();
}

2.4  示例截图

PIE SDK与OpenCV结合说明文档的更多相关文章

  1. PIE SDK与GeoServer结合说明文档

    1.  GeoServer简介 GeoServer是OpenGIS Web服务器规范的J2EE实现的社区开源项目,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操 ...

  2. PIE SDK与Matlab结合说明文档

    1.功能简介 Matlab是三大数学软件之一,它在数学类科技应用软件中在数值计算方面首屈一指.Matlab可以进行矩阵运算.绘制函数和数据.实现算法.创建用户界面.连接其他编程语言的程序等,主要应用于 ...

  3. PIE SDK与Python结合说明文档

    1.功能简介 Python是一种跨平台语言.无论是在Windows.Linux.Unix还是Mac Os系统,我们都可以使用Python.甚至在Linux.Unix及Mac OS系统内已经集成了Pyt ...

  4. PIE SDK 文章目录索引

    1.PIE SDK介绍 1.1.  PIE软件介绍 1.2.  PIE SDK介绍 1.3.  PIE支持项目介绍 1.4.  PIE.NET-SDK插件式二次开发介绍 1.5.  PIE.NET-S ...

  5. Highcharts选项配置详细说明文档(zz)

    http://www.helloweba.com/view-blog-156.html Highcharts提供大量的选项配置参数,您可以轻松定制符合用户要求的图表,目前官网只提供英文版的开发配置说明 ...

  6. BasicExcel说明文档

    BasicExcel说明文档 BasicExcel原始链接:http://www.codeproject.com/Articles/13852/BasicExcel-A-Class-to-Read-a ...

  7. Highcharts选项配置详细说明文档

    Highcharts提供大量的选项配置参数,您可以轻松定制符合用户要求的图表,目前官网只提供英文版的开发配置说明文档,而中文版的文档网上甚少,且零散不全.这里,我把Highcharts常用的最核心的参 ...

  8. ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了

    引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者 ...

  9. Pylon5 SDK搭配OpenCV使用入门

    本文假设已经安装了Basler官网提供的Pylon 目前最新的版本是5.0.5,如果上述链接打不开,请直接所有Basler官网下载,需要注意的是在安装Pylon5时要选择Developer模式,这样才 ...

随机推荐

  1. C/C++语言中指针数组和数组指针比较区别

    指针数组:int *p[3] 定义一个指针数组,其中每个数组元素指向一个int型变量的地址 意思就是指针的数组,数组里面都是指针 例子: int *p[3];//定义了一个指针数组,有3个成员,每个成 ...

  2. element onclick 动态创建元素并绑定onclick事件

    <html> <head> <meta charset="UTF-8"> <title>b</title> <sc ...

  3. 重叠IO

    一. 异步IO        说到重叠模型首先还是提一下异步IO比较好,因为从本质上讲,重叠模型也是一种异步IO模型.       我们知道,相对于计算机执行的其他操作而言,设备IO(文件.管道.套接 ...

  4. SpringCloud教程 | 第三篇: 服务消费者(Feign)(Finchley版本)

    上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务. 一.Feign简介 Feign是一个声明式的伪Http客户端,它使得写Htt ...

  5. UT源码162

    (3)设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Cellp ...

  6. Retrofit+Rxjava observable转javabean失败

    报错提示: Caused by: java.lang.IllegalArgumentException: Unable to create call adapter for io.reactivex. ...

  7. 菜鸟的Xamarin.Forms前行之路——windows下VS运行ios模拟器调试

    在Xamarin.Forms项目中,运行安卓模拟器是很方便的,但是想要运行IOS模拟器,相对而言是困难一点. 在参考一些资料后,发现很多是与Xamarin.studio有关的方法,尝试了许久没有成功. ...

  8. Word页面去除下划线(Office 2017)实现

    后面就不用说了吧设置边框无

  9. Magicodes.NET框架之路[转]

    插件式框架 响应式布局以及前后端对移动设备的支持 便捷的业务代码生成,比如CRUD生成,并且表单支持根据不同数据类型或特性生成相应的展示组件. 从框架到插件包括代码生成模板均走开源路线,便于理解和定制 ...

  10. python获取IP位置来源

    import requests import IPy def get_location(ip): url = 'https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2D ...