大恒视频采集流程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用OpenCV进行大恒CG400CG410视频采集卡的视频读取

(2013-04-27 16:12:02)

转载▼

分类:opencv

标签:

杂谈

最近用到红外摄像头,要用到视频采集卡,采用的是大恒CG410的板子,CG410是CG400的升级版,虽然驱动不一样,SDK和适用环境是一样的。这是使用的是win7 32位系统。大恒的SDK的事例都是都是MFC的代码,奈何我需要的是在控制台下进行摄像头的读取,并转换到OpenCV可以识别的图像数据格式IplImage或者Mat结构,这个使用的是前者。下面是解决方法:

在项目的库中包含

CGVideo.lib

CGVidEx.lib

头文件记得加入windows.h,因为要使用到windows句柄

代码如下:

1:#include"opencv2/core/core.hpp"

2:#include"opencv2/highgui/highgui.hpp"

3:#include"opencv2/imgproc/imgproc.hpp"

4:#include"opencv2/video/video.hpp"

5:#include

6:#include

7:

8:#include"CGVideo.h"

9:#include"CGDef.h"

10:#include"CGVidEx.h"

11:

12:using namespace std;

13:using namespace cv;

14:

15:int main()

16: {

17://初始化所有成员变量,同时打开图像卡 */

18: CGSTATUS status = CG_OK;

19: HCG hcg = NULL;

20:

21://打开图像卡 1,返回状态值

22: status = BeginCGCard(1, &hcg);

23:

24://检验函数执行状态,如果失败,则返回错误状态消息框*/

25: CG_VERIFY(status);

26:

27://初始化图像卡硬件状态,用户也可以在其他位置初始化图像卡,

28://但应保证图像卡已经打开,建议用户在应用程序初始化时,同时初始化图像卡硬件。

29:// 设置视频制式(PAL / NTSC),由当前视频源制式决定

30: CGSetVideoStandard(hcg, PAL);

31:

32:// 扫描模式,包括 FRAME、FIELD

33: CGSetScanMode(hcg, FRAME);

34:

35://晶振,包括CRY_OSC_35M、CRY_OSC_28M

36://对于DH-CG300图像卡,一般为CRY_OSC_35M,

37://对于DH-QP300图像卡,一般为CRY_OSC_28M,

38://其他类型图像卡没有此硬件设置,但可以调用此接口,并返回CG_NOT_SUPPORT_INTERFACE信息

39:

40: CGSelectCryOSC(hcg, CRY_OSC_35M);

41:

42://视频格式,即采集图像数据描述方式,包括YUV422、RGB888、RGB565、RGB555、RGB8888、ALL8BIT、LIMITED8BIT,

43://在采集图像到屏幕时,需要保证视频格式和当前系统屏幕位深度一致,而采集到内存没有此限制。

44: CGSetVideoFormat(hcg, RGB888);

45:

46:

47://视频源路VIDEO_SOURCE包括视频类型和序号,

48://各种图像卡支持的视频源路不尽相同,请参看相应硬件说明

49: VIDEO_SOURCE source;

50: source.type = COMPOSITE_VIDEO; //视频类型为复合视频

51: source.nIndex = 0; //序号为0

52: CGSetVideoSource(hcg, source);

53:

54://视频输入窗口,即视频输入范围,输入窗口取值范围:

55://对于视频制式为PAL制,水平方向为0-768,垂直方向为0-576

56://对于视频制式为NTSC制,水平方向为0-768,垂直方向为0-576

57://视频窗口左上角X坐标和窗口宽度应为4的倍数,左上角Y坐标和窗口高度应为2的倍数

58: CGSetInputWindow(hcg, 0, 0, 768, 576); //视频输入窗口取最大

59:

60:

61://视频输出窗口,即视频输出范围,输出窗口取值范围必须在输入窗口范围以内,

62://视频窗口左上角X坐标和窗口宽度应为4的倍数,左上角Y坐标和窗口高度应为2的倍数

63://在采集到屏幕时,输出窗口的起始位置为图像屏幕输出位置的屏幕坐标,

64://在采集到内存时,输出窗口的起始位置设置为(0, 0)即可。

65:

66: CGSetOutputWindow(hcg, 0, 0, 768, 576);

67:

68://初始化BITMAPINFO 结构指针

69: BITMAPINFO *pBmpInfo = NULL;

相关文档
最新文档