采用Basler acg-2500相机完成这次测试
首先去Basler官网下载SDK,就是那个pylon程序,里面集成了相机调试工具及SDK,自行安装。

然后使用pylon IP Configurator程序配置相机信息,主要是修改ip,使相机与电脑在同一局域网下。

设置好后,打开pylon Viewer程序,这是basler提供的相机调试工具,测试下相机是否正常,然后就可以开始进入VS开发了。

实例代码
采集效果如下:

添加Basler引用,复制安装目录pylon 6\Development\Assemblies\Basler.Pylon\x64路径下的Basler.Pylon.dll文件到你的项目debug目录下,并使用using Basler.Pylon;引用。

声明全局变量

List<ICameraInfo> allCameras;//存储所有相机
Camera mCamera;//相机对象

获取所有相机信息

allCameras = CameraFinder.Enumerate();

实例化相机对象

 mCamera = new Camera(allCameras[0]);

打开相机连接

 mCamera.Open();

注意:一旦打开相机连接,必须有关闭,否则相机将会连接不上,这种情况下等待几分钟后,连接对象会被系统回收,再次连接即可。

关闭相机

mCamera.Close();

取图

mCamera.StreamGrabber.Start();
IGrabResult grabResult = mCamera.StreamGrabber.RetrieveResult(5000, TimeoutHandling.ThrowException);
if (grabResult.GrabSucceeded)
{//将图像数据转换为位图
Bitmap bitmap = new Bitmap(grabResult.Width, grabResult.Height, PixelFormat.Format32bppRgb);
BitmapData bmpData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadWrite, bitmap.PixelFormat);
PixelDataConverter converter = new PixelDataConverter();
converter.OutputPixelFormat = PixelType.BGRA8packed;
IntPtr ptrBmp = bmpData.Scan0;
converter.Convert(ptrBmp, bmpData.Stride * bitmap.Height, grabResult);
bitmap.UnlockBits(bmpData);
//使用visionpro显示控件显示出来
cogRecordDisplay1.Image = new CogImage8Grey(bitmap);
}
else
{Console.WriteLine("Error: {0} {1}", grabResult.ErrorCode, grabResult.ErrorDescription);
}
mCamera.StreamGrabber.Stop();

使用事件采集图像(推荐)

注册采集图像事件

mCamera.StreamGrabber.ImageGrabbed += OnImageGrabbed;

图像处理方法

public void OnImageGrabbed(Object sender, ImageGrabbedEventArgs e)
{Console.WriteLine("采集图像处理");
IGrabResult grabResult = e.GrabResult;if (grabResult.GrabSucceeded)
{//转换图像数据
Bitmap bitmap = new Bitmap(grabResult.Width, grabResult.Height, PixelFormat.Format32bppRgb);
BitmapData bmpData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadWrite, bitmap.PixelFormat);
PixelDataConverter converter = new PixelDataConverter();
converter.OutputPixelFormat = PixelType.BGRA8packed;
IntPtr ptrBmp = bmpData.Scan0;
converter.Convert(ptrBmp, bmpData.Stride * bitmap.Height, grabResult);
bitmap.UnlockBits(bmpData);
//visionpro控件显示图像
cogRecordDisplay1.Image = new CogImage8Grey(bitmap);
}
else
{Console.WriteLine("Error: {0} {1}", grabResult.ErrorCode, grabResult.ErrorDescription);
}
}

采集图像方法

mCamera.StreamGrabber.Start();
IGrabResult grabResult = mCamera.StreamGrabber.RetrieveResult(5000, TimeoutHandling.ThrowException);
mCamera.StreamGrabber.Stop();

使用Basler相机SDK采集的显示图片相关推荐

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

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

  2. VS(C#)调用Basler相机SDK采集图像及基本功能设定

    注意一定要安装那个 巴斯勒的程序后在运行代码 ,要不然就报什么组建错误 注:博主看着另外一个博主的博客才有下面的一些总结,有兴趣可以看一下:https://blog.csdn.net/qq_39930 ...

  3. 关于使用海康相机SDK采集图片并传递给C++的使用总结

    一.背景 需要用C#调用海康相机SDK采集图片,并将采集的图片以Byte[]数组的形式传递给C++版视觉处理dll 二.步骤 1.声明变量 public MyCamera myCamera;//相机对 ...

  4. Basler相机Sdk采图的演示例程(C#)

    机器ppm不达标的情况下,往往对视觉的处理速度有变态的要求,为了争取处理时间最短,几十毫秒也要争取. halcon的接口是通用接口,其速度是比不上相机厂商自己相机配套的SDK的采图速度的. 下面程序运 ...

  5. Basler相机SDK开发

    作为集成商,本着万事从官方开始的原则,先来到basler官网Basler – 德国工业相机_工业镜头_工业光源_线材等视觉组件提供商 随便找一款相机,下载Basler pylon相机软件套装,下载py ...

  6. Basler相机SDK相关问题收集与知识汇总

    1.心跳时间导致报错 此心跳非彼心跳,相机心跳是指过通过设置一个时间用于监测相机和网卡的连接,如果超过这个时间,相机就会释放跟网卡的连接,进入一种允许相机被再次连接的状态. 但此方式会导致相机SDK报 ...

  7. 相机SDK采集的图像从堆栈读取并转为HALCON的格式继续目标识别

    相机采集图像存入堆栈的程序省略 接下来代码是从缓冲区获取一帧图像,转换为HALCON三通道图像,并且上下镜像得到正确的图像,然后调用HALCON的函数,具体HALCON中实现见另一篇网址https:/ ...

  8. Unity调用大华相机SDK采集图像及基本功能设定

    unity平台对视频播放不是很友好,而大华的SDK只有c#版本的并没有专门为unity做出来SDK,最开始尝试过使用SDK里面的方式获取YUV格式的视频流,再讲YUV格式的视频流转换为unity可以播 ...

  9. 『Halcon与C#混合编程』010_相机实时采集并显示(或循环显示)

            1.首先在halcon通过相机助手生成以下代码 * Image Acquisition 01: Code generated by Image Acquisition 01 open_ ...

最新文章

  1. RPC-原理及RPC实例分析
  2. reentrantlock 使用
  3. HDU 2087剪花布条 KMP
  4. 数学建模——智能优化之粒子群模型详解Python代码
  5. delphi 函数内创建对象 释放_JavaScript 的函数底层运行机制
  6. java ppt转html_word,ppt,excel转pdf,pdf转html工具类搭建
  7. 通过字符串方法创建新字符串如何打出反斜杠、单引号、双引号、响铃、换行符、水平制表符
  8. 如何使用XGBoost开发随机森林集成
  9. c# LINQ 使用
  10. DelphiWebMVC框架实现对Redis支持
  11. python可视化界面开发实例-Python可视化界面编程入门
  12. Mar9th 海尔java面试
  13. 语音数字信号处理与分析及Matlab实现
  14. 服务端(Win server2012)+IIS管理器配置PHP服务器并部署网站讲解
  15. 电路串联和并联图解_电路串联和并联的区别有哪些
  16. 通过bootstrap4框架制作商城网页
  17. Android强制竖屏
  18. 计算机主板的i o芯片坏了,主板芯片坏了电脑还能开机吗?
  19. Base16和Base64不同的用途
  20. tp6实现商城后台登录功能

热门文章

  1. 服务器2012打开远程端口,Windows Server 2012远程默认端口3389的修改
  2. 为何一个主机ip可以ping通,nmap扫描结果却说主机不在线
  3. 运行前端项目之html
  4. MQTT,物联网圈的 HTTP,万物互联第一步
  5. c语言建立全局变量,C语言全局变量和局部变量
  6. Mac Julia 环境 IDE 安装
  7. UE4蓝图导入导出csv
  8. 在一幅图中为箱线图设置不同颜色
  9. 攻防基础-木马病毒介绍
  10. Excel函数公式大全—LOOKUP函数