可以通过调用相机SDK来实现相机取流。
1.截取相机帧数据。示例代码如下。
1. C#
2. //相机相关变量
3. private VisionDesigner.Camera.CCameraTool m_cMyCameraToolObj = null;
4.
5. /// <summary>
6. /// 打开相机并开始取图
7. /// </summary>
8. public int OpenCamera(int cameraindex = 0)
9. {
10. try
11. {
12. //DeviceListAcq();//获取相机列表方法
13. //创建相机算子实例
14. if (null == m_cMyCameraToolObj)
15. {
16. m_cMyCameraToolObj = new VisionDesigner.Camera.CCameraTool();
17. if (null == m_cMyCameraToolObj)
18. {
19. return -1;
20. }
21. }
22. //设置连续采集模式
23. m_cMyCameraToolObj.SelectDevice(cameraindex);//默认选择索引为0的相机
24. m_cMyCameraToolObj.OpenDevice();
25. m_cMyCameraToolObj.SetEnumValue("AcquisitionMode", (uint)MVD_CAM_ACQUISITION_MODE.MVD_ACQ_MODE_CONTINUOUS);
26. m_cMyCameraToolObj.SetEnumValue("TriggerMode", (uint)MVD_CAM_TRIGGER_MODE.MVD_TRIGGER_MODE_OFF);
27. m_cMyCameraToolObj.SetEnumValue("TriggerSource", (uint)MVD_CAM_TRIGGER_SOURCE.MVD_TRIGGER_SOURCE_SOFTWARE);
28. m_cMyCameraToolObj.StartGrab();//开始取图
29. return 0;
30. }
31. catch (Exception ex)
32. {
33. return -1;
34. }
35. }
36. /// <summary>
37. /// 从相机获取一帧图像
38. /// </summary>
39. private void GetStreamThreadProc()
40. {
41. int nRet = 0;
42. CMvdImage imgtemp = null;
43. nRet = 0;
44. nRet = m_cMyCameraToolObj.CameraGrabResult.GetOneFrameTimeout (ref imgtemp);
45. if (0 == nRet && imgtemp != null)
46. {
47. ImageData imageshow1 = CMvdImageToImageData(imgtemp);
48. }
49. }
2.将相机帧类型CMvdImage图像数据转换成ImageData类型数据,代码如下。
1. C#
2. /// <summary>
3. /// CMvdImage格式的图像转为imagedata图像
4. /// </summary>
5. /// <param name="image"></param>
6. /// <returns></returns>
7. public ImageData CMvdImageToImageData(CMvdImage image)
8. {
9. if (image != null)
10. {
11. ImageData imageData = new ImageData();
12. imageData.Width = (int)image.Width;
13. imageData.Height = (int)image.Height;
14. imageData.PixelFormat = PixelFormats.Gray8;
15. imageData.ImageBuffer = new byte[image.GetImageData(0).arrDataBytes.Length];
16. Array.Copy(image.GetImageData(0).arrDataBytes, imageData.ImageBuffer, imageData.ImageBuffer.Length);
17. return imageData;
18. }
19. else
20. {
21. return null;
22. }
23. }
探寻机器视觉新星|第二届“启智杯”机器视觉设计大赛获奖名单公布
2024-04-08 16:39:23