扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:刘涛 来源:作者授权转载 2007年10月21日
关键字:
//////////////////////////////////////// CTestView::CTestView() { W32_Init_MPE1000();//初始化采集卡 W32_Modify_Contrast(50);//下面的函数是为了对采集卡进行预设置 W32_Modify_Brightness(45);//设置亮度 W32_Set_HP_Value(945);//设置水平采集点数 wCurrent_Frame = 1;//当前帧为1,获取的图像就是从这帧取得的 // 设置采集信号源,仅对MPE1000有效 W32_Set_Input_Source(1);//该图像采集卡支持三路视频,目前采集的图像来自第二路输入端; W32_Set_PAL_Range(1250, 1024);//设置水平采集范围 W32_Set_VGA_Mode ( 1 ); 采用PAL制式; wGrabWinX1 = 0; // 采集窗口的左上角的坐标 wGrabWinY1 = 0; firstTime=TRUE; //第一次采集; bGrabMode = FRAME; //抓图模式为?格式; bZipMode = ZIPPLE; //压缩模式为ZIPPLE; lpDib=NULL;//存放获取的图像数据缓冲区为空; } //////////////////////////////////////// CTestView::~CTestView() { W32_Close_MPE1000();//关闭采集卡 } //////////////////////////////////////////// void CTestView::OnGraboneframe()//显示采集的图象,双击鼠标采集停止 { // TODO: Add your command handler code here wCurrent_Frame = 1; // 设置采集目标为内存 W32_CACardParam (AD_SETGRABDEST, CA_GRABMEM); // 启动采集 if (lpDib != NULL)//如果图像缓冲区不为空,释放该缓冲区; { GlobalUnlock( hglbDIB ); GlobalFree( hglbDIB ); } //为采集到的图像数据分配内存; hglbDIB=GlobalAlloc(GHND, (DWORD)wImgWidth*(DWORD)wImgHeight ); lpDib = (BYTE *)GlobalLock( hglbDIB ); //得到图像数据的指针; hdc = GetDC()->GetSafeHdc( ) ; //获取视图的设备上下文句柄; if(lpDib != NULL) { cxDib = wImgWidth; cyDib = wImgHeight; SetLogicPal( hdc, cxDib, cyDib, 8 ); //设置调色板; SetStretchBltMode (hdc, COLORONCOLOR) ; bGrabMark = TRUE; while (bGrabMark == TRUE) { if(msg.message==WM_LBUTTONDBLCLK) //分析是否为鼠标双击消息; bGrabMark = FALSE;//如为鼠标双击消息,停止采集图象; W32_ReadXMS2Buf (wCurrent_Frame,lpDib) ; //将图象数据读入到图像数据缓冲区; SetDIBitsToDevice (hdc, 0, 0, cxDib, cyDib, 0, 0, 0, cyDib, (LPSTR) lpDib, bmi, DIB_RGB_COLORS) ; //显示图像; } // 停止采集 W32_CAStopCapture(); ::ReleaseDC( GetSafeHwnd(), hdc ); return ; } //将下面这个函数添加在视图类的CTestView::OnSize()函数中,就可以对系统的调色板进行设置。 void WINAPI InitLogicPal( HDC hdc , short width, short height, WORD bitCount ) { int j, i; short cxDib, cyDib; LOGPALETTE * pLogPal; j=256 ; if((pLogPal=(LOGPALETTE*)malloc(sizeof(LOGPALETTE)+ (j*sizeof(PALETTEENTRY)))) == NULL) return ; pLogPal->palVersion=0x300; //设置调色版的颜色信息; pLogPal->palNumEntries=j; for (i=0;i pLogPal->palPalEntry[i].peRed = i ; { pLogPal->palPalEntry[i].peGreen = i ; pLogPal->palPalEntry[i].peBlue = i ; pLogPal->palPalEntry[i].peFlags = 0; } hPal = ::CreatePalette(pLogPal); //创建调色板; delete pLogPal; ::SelectPalette(hdc,hPal,0);//系统实现调色板; ::RealizePalette(hdc); cxDib = width; cyDib = height; if ( (bmi = (BITMAPINFO *)malloc(sizeof(BITMAPINFOHEADER) + j*sizeof(RGBQUAD))) == NULL ) return ; //定义图 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者