赞
踩
映美精黑白相机,用wpf+halcon开发取图
1.到官网下载,开发包
1sdk 2c++开发例子 3c#开发例子
3.ICImagingControl使用这个类控制相机
/// <summary> /// 相机控制 /// </summary> public ICImagingControl _ic_imaging_control = new ICImagingControl(); //设置不把图片显示在控件 _ic_imaging_control.LiveDisplay = false; //禁止覆盖位图 _ic_imaging_control.OverlayBitmapPosition = PathPositions.None; if (_ic_imaging_control.Devices.Length > 0) { int device_count_ = _ic_imaging_control.Devices.Length; for (int i = 0; i < device_count_; i++) { if (_ic_imaging_control.Devices[i].Name.Contains(_camer_parameter._camer_name)) { _ic_imaging_control.Device = _ic_imaging_control.Devices[i]; _camer_name = _ic_imaging_control.Devices[i].Name; } } }
4.采用回调方式取图
CamerTakeImage.CamerTakeImage._camer_take_image_static.Init();
if (CamerTakeImage.CamerTakeImage._camer_take_image_static._camer_name != "")
{
_currently_displayed_buffer = null;
//创建相机的回调函数
_sink = new TIS.Imaging.FrameQueueSink((arg) => CamerCallback(arg), TIS.Imaging.MediaSubtypes.Y800, 5);
CamerTakeImage.CamerTakeImage._camer_take_image_static._ic_imaging_control.Sink = _sink;
}
5.把图片转成HObject
/// <summary> /// 相机的回调函数 /// </summary> /// <param name="buffer"></param> /// <returns></returns> FrameQueuedResult CamerCallback(IFrameQueueBuffer buffer) { DealWithImage.DealWithImage._deal_with_image_static._exit_image = false; DealWithImage.DealWithImage._deal_with_image_static._image.Dispose(); HOperatorSet.GenImage1(out DealWithImage.DealWithImage._deal_with_image_static._image, "byte", buffer.FrameType.Width, buffer.FrameType.Height, buffer.GetIntPtr()); DealWithImage.DealWithImage._deal_with_image_static._exit_image = true; hswin_image.RefreshWindow(); //这句话一定要有,不然取图只有五张 if (_currently_displayed_buffer != null) { _sink.QueueBuffer(_currently_displayed_buffer); } _currently_displayed_buffer = buffer; return FrameQueuedResult.SkipReQueue; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。