用LabVIEW设计一个串口摄像头拍照程序

用LabVIEW设计一个串口摄像头拍照程序,第1张

//创建一个串口通讯

SerialPort CurrentPort = null

CurrentPort = new SerialPort()

CurrentPort.ReadBufferSize = 128

CurrentPort.PortName = comName //端口号

CurrentPort.BaudRate = bandRate//比特率

CurrentPort.Parity =parity//奇偶校验

CurrentPort.StopBits = stop//停止位

CurrentPort.DataBits = databit//数据位

CurrentPort.ReadTimeout = 1000//读超时,即在1000内未读到数据就引起超时异常

//绑定数据接收事件,因为发送是被动的,所以你无法主动去获取别人发送的代码,只能通过这个事件来处理

CurrentPort.DataReceived += Sp_DataReceived

CurrentPort.Open()

定义一个变量 byte[] receiveStr

//绑定的事件处锋庆理函数

private static void Sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)

{

SerialPort sp = sender as SerialPort

if (sp == null)

return

byte[] readBuffer = new byte[sp.ReadBufferSize]

sp.Read(readBuffer, 0, readBuffer.Length)

//赋值悉烂

receiveStr=readBuffer//当然你可以通过转换将byte[]转换为字符串。

}

//你要求的按钮事件可睁基漏以这么写

private void button1_Click(object sender, EventArgs e)

{

if(receiveStr!=null)

{

变量 xxx=receiveStr

}

}

首先打开摄像头,右键点击打开摄像头控件的会话端口,创建输入控件,即图上的Session In输入控件,当连接后多个摄像头的时候用户可以进行选择摄像头的一个,再经过一个图像获取配置控件,进入while循环,开始连续采样,循环外的IMAQ是为图像申请一个缓冲区竖春来先存播放的图像。

功能:打开一个摄像头,查询这个摄像头的权限,加载摄像头的配置文件,并且为这个摄像余核耐头创建唯一的引用,当完成引用的时候可以用Close Camera 控件关闭这个引用。

功能:配置并开始图像的获取。图像氏首获取在一个循环缓冲区持续的进行获取,使用Grap这个控件从缓冲区中复制图像,如果你在Open Camera控件前调用这个控件,那么那就会默认使用cam0这个引用。可以使用这个Unconfigure这个控件去清除配置

功能:创建一个暂时的缓冲区去加载图像

这个基本上很难。普通的摄像头,基本上都是基于DIRECTSHOW的。而NI对于这方面的支持不是那么理想。你去看NI的VISION下的IMAQ和IMAQDX,都没有这些普通USB相机的IDX文件,不过你可以试着去NI的网站上下一个IDX文件生成器试试。反正我是没弄成功过。我的也是信简不能修改这些属性的,只能自动。你也不要再试图去多做这方面的功了,就算许多国产工业相机,使用NI自己的驱动,也是许多属性是设置不了的。因为这些如圆相机没有经过NI认证,没有相应的IDX文件,所以设置不了也是非常正常的。一般如果有相机(摄像头)自己的驱动如DLL等,那渣坦塌么调用这些DLL会好用许多。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12400216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存