使用Basler相机SDK采集的显示图片
采用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采集的显示图片相关推荐
- android相机采集sdk,C#用basler相机sdk采集图像并用halcon显示的小程序
C#用basler相机sdk采集图像并用halcon显示的小程序 C#用basler相机sdk采集图像并用halcon显示的小程序 本人在用halcon做图像处理做视觉项目时,通常都是用c#写程序的主 ...
- VS(C#)调用Basler相机SDK采集图像及基本功能设定
注意一定要安装那个 巴斯勒的程序后在运行代码 ,要不然就报什么组建错误 注:博主看着另外一个博主的博客才有下面的一些总结,有兴趣可以看一下:https://blog.csdn.net/qq_39930 ...
- 关于使用海康相机SDK采集图片并传递给C++的使用总结
一.背景 需要用C#调用海康相机SDK采集图片,并将采集的图片以Byte[]数组的形式传递给C++版视觉处理dll 二.步骤 1.声明变量 public MyCamera myCamera;//相机对 ...
- Basler相机Sdk采图的演示例程(C#)
机器ppm不达标的情况下,往往对视觉的处理速度有变态的要求,为了争取处理时间最短,几十毫秒也要争取. halcon的接口是通用接口,其速度是比不上相机厂商自己相机配套的SDK的采图速度的. 下面程序运 ...
- Basler相机SDK开发
作为集成商,本着万事从官方开始的原则,先来到basler官网Basler – 德国工业相机_工业镜头_工业光源_线材等视觉组件提供商 随便找一款相机,下载Basler pylon相机软件套装,下载py ...
- Basler相机SDK相关问题收集与知识汇总
1.心跳时间导致报错 此心跳非彼心跳,相机心跳是指过通过设置一个时间用于监测相机和网卡的连接,如果超过这个时间,相机就会释放跟网卡的连接,进入一种允许相机被再次连接的状态. 但此方式会导致相机SDK报 ...
- 相机SDK采集的图像从堆栈读取并转为HALCON的格式继续目标识别
相机采集图像存入堆栈的程序省略 接下来代码是从缓冲区获取一帧图像,转换为HALCON三通道图像,并且上下镜像得到正确的图像,然后调用HALCON的函数,具体HALCON中实现见另一篇网址https:/ ...
- Unity调用大华相机SDK采集图像及基本功能设定
unity平台对视频播放不是很友好,而大华的SDK只有c#版本的并没有专门为unity做出来SDK,最开始尝试过使用SDK里面的方式获取YUV格式的视频流,再讲YUV格式的视频流转换为unity可以播 ...
- 『Halcon与C#混合编程』010_相机实时采集并显示(或循环显示)
1.首先在halcon通过相机助手生成以下代码 * Image Acquisition 01: Code generated by Image Acquisition 01 open_ ...
最新文章
- RPC-原理及RPC实例分析
- reentrantlock 使用
- HDU 2087剪花布条 KMP
- 数学建模——智能优化之粒子群模型详解Python代码
- delphi 函数内创建对象 释放_JavaScript 的函数底层运行机制
- java ppt转html_word,ppt,excel转pdf,pdf转html工具类搭建
- 通过字符串方法创建新字符串如何打出反斜杠、单引号、双引号、响铃、换行符、水平制表符
- 如何使用XGBoost开发随机森林集成
- c# LINQ 使用
- DelphiWebMVC框架实现对Redis支持
- python可视化界面开发实例-Python可视化界面编程入门
- Mar9th 海尔java面试
- 语音数字信号处理与分析及Matlab实现
- 服务端(Win server2012)+IIS管理器配置PHP服务器并部署网站讲解
- 电路串联和并联图解_电路串联和并联的区别有哪些
- 通过bootstrap4框架制作商城网页
- Android强制竖屏
- 计算机主板的i o芯片坏了,主板芯片坏了电脑还能开机吗?
- Base16和Base64不同的用途
- tp6实现商城后台登录功能