一、环境说明

操作系统:win 10

开发环境:visual studio 2019

参考资料-官方文档:Welcome to the Phase One Software Development Kits (SDKs) — Phase One SDK's 2.0.48 documentation

SDK 下载地址:Download — Phase One SDK's 2.0.48 documentation

二、下载Phase One SDK

Phase One SDK 由 【camera SDK 】和【 image SDK 】组成,camera SDK 用于控制相机,常用于设置相机参数、接收图像等,image SDK 用于控制拍摄影像,处理元数据、裁剪、缩放等。进入下载地址(文章发表时)根据需求自行下载对应版本,本文仅面向windows系统版本。

下载完成后解压缩,得到 【p1camerasdk-windows\dest】  【p1imagesdk-windows\dest】 两个目录文件夹,文件夹中有很多东西,但对我们有用的只有【 Cs 】文件夹,里面分别包含了两个动态链接库【 CameraSdkCs.dll 】、【 CameraSdkCBindingsForCs.dll 】、【 ImageSdkCs.dll 】、【 ImageSdkCBindingsForCs.dll 】,通过引用动态链接库即可使用 Phase SDK。

三、调用Phase One SDK

1、C# 控制台应用程序调用 Phase One SDK

在官方参考资料中,提供了如何使用 PowerShell 或者 cmd 控制台 创建控制台应用程序的方法,在这里不再赘述,详见参考资料。我将介绍使用vs 2019创建并配置的方法。

(1)创建一个控制台应用程序(.NET Core)

使用VS 2019正常创建一个控制台应用项目,如果过程和下图不一样,并且创建后的没有根据模板生成相应的应用程序,可能是vs 2019的版本过低,更新后即可解决

(2)引用Phase One SDK

将要待引用的两个SDK复制到项目中,保留【Cs】及其内部的动态链接库。

双击项目名【PhaseTest_Core】,打开 .csproj 工程文件,在与 <PropertyGroup> 标签同级下使用<ItemGroup> 标签进行动态链接库的引用,工程文件的代码为:

<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>netcoreapp3.1</TargetFramework></PropertyGroup><ItemGroup><!-- 引用 CameraSDK C# API --><Reference Include="CameraSdkCs.dll"><HintPath>dest1/Cs/CameraSdkCs.dll</HintPath></Reference><!-- 引用 ImageSDK C# API --><Reference Include="ImageSdkCs.dll"><HintPath>dest2/Cs/ImageSdkCs.dll</HintPath></Reference><!-- CameraSDK C# API 的依赖关系 --><None Include="dest1/Cs/CameraSdkCBindingsForCs.dll" Link="CameraSdkCBindingsForCs.dll"><CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory></None><!-- ImageSDK C# API 的依赖关系 --><None Include="dest2/Cs/ImageSdkCBindingsForCs.dll" Link="ImageSdkCBindingsForCs.dll"><CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory></None></ItemGroup></Project>

出现下图两个引用即表示完成。

(3)调用SDK完成工程需求

测试一下,是否完成引用。打开【Program.cs】,加入 Using 指令进行调用,需要注意的是,不能直接 Using CameraSdk、Using ImageSdk ,正确调用代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using P1.CameraSdk;  // 引用相机SDK
using P1.ImageSdk; // 引用影像SDK

在主函数中加入示例代码,测试获取连接的相机,主函数为:

        static void Main(string[] args){Console.WriteLine("Hello World!");Console.WriteLine("检测已连接的可使用的摄像机...");IEnumerable<CameraDescriptor> cameras = Camera.GetAvailableCameras();//获取所有相机foreach (var camera in cameras) //遍历相机{Console.WriteLine("* {0}", camera);//输出相机信息}if (cameras.Any() == false){Console.WriteLine("没有找到可用的摄像机!");}}

示例完成了获取可使用的所有相机,运行调试:

完成测试,读者可以开始完成自己的项目需求。

 2、C# 桌面应用程序调用 Phase One SDK

(1)创建一个桌面应用程序(.NET Framework)

(2)引用及测试 Phase One SDK

通常情况下,桌面应用程序的引用比较简单,右键【项目】→【添加引用】→【浏览】找到需要引用的.dll文件,即可完成对动态链接库的引用。但此时直接引用【CameraSdkCBindingsForCs.dll 】、【 ImageSdkCBindingsForCs.dll 】会出现下图所示报错:

首先猜测是否桌面应用程序不需要这两个库。在窗体中设置一个按钮【获取相机】实现点击获取所有相机的小功能,并在文本框中输出提示:

双击按钮跳转到点击函数,同上文加入 Using 指令进行调用,按钮点击响应函数中输入代码:

            textBox1.Text = "检测已连接的可使用的摄像机..." + '\n';IEnumerable<CameraDescriptor> cameras = Camera.GetAvailableCameras();//获取所有相机foreach (var camera in cameras) //遍历相机{textBox1.Text += camera.ToString() + "\n";}if (cameras.Any() == false){textBox1.Text += "没有找到可用的摄像机!" + "\n";}

测试运行,结果发现报错如下图,意思是没有在Debug目录下找到对应的库,证明上文推测错误,那两个不能直接引用的库是必须的。

那既然找不到,就直接复制进Debug目录吧,(感觉这也是一些库的用法)。测试运行,发现报错如下图,报错代码为:0x8007000B

查了异常代码的含义,应该是解决方案的平台不对,一般VS默认平台是【Any CPU】,再回过头看SDK的开发文档,发现环境应该是Windows10,64位:

按下图新建64位平台:

再次运行调试,注意:需要将【CameraSdkCBindingsForCs.dll 】、【 ImageSdkCBindingsForCs.dll 】手动复制到项目【bin】→【x64】→【Debug】目录下。

至此,完成了桌面应用程序对Phase One SDK引用和调试,读者可以开始完成自己的项目需求。SDK包含的各种功能接口详见参考资料官方文档。

【Phase One SDK】飞思相机SDK的环境配置及调用相关推荐

  1. ZED相机 C# Api环境配置

    文章目录 ZED相机 C# api环境配置 为什么要配置ZED相机在C#的Api环境 基础环境 环境配置 基础条件 配置过程 Cmake生成工程文件 构建Stereolabs.zed 构建tutori ...

  2. win10系统海康威视SDK二次开发Qt环境配置

    先下载海康SDK 我下载的win64版本: 海康SDK官网下载 解压后得到库文件和头文件 头文件 库文件 新建QWidget项目,选择64位的kits工具,在pro目录新建include文件夹和lib ...

  3. android studio环境配置

    今天,简单讲讲Android studio如何安装和配置好环境. 昨天,讲了jdk环境的配置,如果没有配置好jdk,是不能安装Android studio的.如果已经配置好jdk环境,那么直接学习An ...

  4. 码农飞升记-06-JDK多环境配置

    我们在<JDK8安装包的下载安装方式以及环境变量vb.net教程的配置>.<JDK11安装包的下载安装方式以及环境变量的配置>.<JDK压缩包c#教程的下载安装方式以及环 ...

  5. VS调用大恒相机sdk实时显示图像并进行图像处理+OPENCV

    前言: 近期企业需要用大恒相机的sdk开发项目,我采用VS2017+QT5.10.1+MSVC. 一.环境配置 VS2017和qt的安装不多介绍,主要介绍大恒sdk的配置. 1.https://www ...

  6. Qt Creator 添加大恒相机SDK库

    记录开发大恒相机遇到的问题 拷贝大恒SDK(D:\GalaxySDK\Samples\C++ SDK)的inc.lib相应文件到项目文件夹 首先:添加动态链接库lib 方法一(简单) 不需要在.pro ...

  7. android相机采集sdk,C#用basler相机sdk采集图像并用halcon显示的小程序

    C#用basler相机sdk采集图像并用halcon显示的小程序 C#用basler相机sdk采集图像并用halcon显示的小程序 本人在用halcon做图像处理做视觉项目时,通常都是用c#写程序的主 ...

  8. 海康威视工业相机SDK二次开发环境配置—Windows10+VS2017

    参考链接: https://blog.csdn.net/motikesi/article/details/108287951 一.SDK下载地址: https://www.hikrobotics.co ...

  9. [相机开发] VC++联合相机SDK开发

    SDK的英文全名是:software development kit,翻译成中文的意思就是"软件开发工具包"通俗一点说 就是第三服务商提供的实现软件产品某项功能的开发包.里面就是动 ...

最新文章

  1. 什么命令看服务器系统,查看linux系统版本可以使用什么命令_网站服务器运行维护...
  2. 斐波那契数列——递归算法
  3. 最短路计数(spfa)
  4. 2018年中国银行业十件大事,“Fintech深度融合,科技子公司遍地”...
  5. imgkit分辨率_pythonhtml2image: imgkit 和 wkhtmltoimage的坑
  6. 今天心情好,发首我喜欢的歌---天黑黑
  7. 项目管理工具——TargetProcess(2)
  8. 2021-09-14基于用 户 行为 序列建模的推荐算法研究
  9. 零基础java自学流程-Java语言高级531
  10. vue实现简单的日历
  11. ECPC16-E. Jumping(bfs)
  12. 来电弹屏功能在呼叫中心的应用
  13. mysql implode_php implode函数应用
  14. alios是安卓吗_全面了解AliOS、Android、QNX三大系统
  15. Altium Designer 往元件库中添加新元件
  16. ERROR:write javaBean error, fastjson version 1.2.62, class com.itheima.pojo.Brand, fieldName : 8
  17. 测量频率和占空比的几种方法
  18. C# 文件目录的操作DirectoryInfo
  19. html a text decoration,你未必知道的CSS小知识:text-decoration属性变成了属性简写
  20. 全栈之巅-NodeJs(AdonisJs)+VueJs开发带完整后台管理UI的博客系统笔记

热门文章

  1. MATLAB如何保存高质量大图
  2. qq怎么登陆不了微信
  3. 计算机二级考试office操作题11,【第十一套】计算机二级MS Office操作题
  4. cad的lisp画线_CAD画缓和曲线lisp程序
  5. 【开源共享】全网最简单易用的imx6ull烧写工具设计初衷工作原理设计前的思考
  6. Linux入门学习(九)—— 怎么查看命令的帮助文档、怎么查看系统配置文件的帮助文档?
  7. opencvjs 磨皮美颜
  8. 艾美捷C1q天然蛋白的应用和化学性质说明
  9. FTD vs FMC
  10. Java生成包含大写字母,小写字母以及数字的无重复随机密码