⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 capture.cpp

📁 停车场用
💻 CPP
字号:
//---------------------------------------------------------------------------
//图象捕捉

#include <vcl.h>
#pragma hdrstop

#include "Capture.h"
#include "SDK2000.h"
#include "dynamic.h"
#include "dido.h"
#include "CBuilder.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)

//初始化控制器拥有车道的图象捕捉卡
int InitCRCapture(void *pCR)
 {
  HWND hMainWnd;
  TForm *pForm;
  ROADWAY *pRoad;
  WORD *pRoadNo;
  int nRoads;
  int i,rc,nVideoType;

  if(pCR==NULL)return(FALSE);

  pForm = Application->MainForm;
  if(pForm!=NULL)hMainWnd=pForm->Handle;
  else hMainWnd=NULL;

  rc=TRUE;
  nRoads = ((CONTROLER *)pCR)->nRoads;
  pRoadNo = ((CONTROLER *)pCR)->wzRoadNo;
  for(i=0;i<nRoads && rc;i++){
    pRoad = (ROADWAY *)GetRoadwayWithNo(pRoadNo[i]);//根据编号或通讯ID获取车道
    if(pRoad!=NULL)
      nVideoType = pRoad->nVideoType;//摄象机类型
    else nVideoType = ROADVIDEO_NONE;

    if(nVideoType==ROADVIDEO_SDK2000)
       rc=SDK2000_Init(hMainWnd,NULL);
   }
  return(TRUE);
 }
//关闭控制器拥有车道的图象捕捉卡
int CloseCRCapture(void *pCR)
 {
  ROADWAY *pRoad;
  WORD *pRoadNo;
  int nRoads;
  int i,rc,nVideoType;

  if(pCR==NULL)return(FALSE);

  rc=TRUE;
  nRoads = ((CONTROLER *)pCR)->nRoads;
  pRoadNo = ((CONTROLER *)pCR)->wzRoadNo;
  for(i=0;i<nRoads && rc;i++){
    pRoad = (ROADWAY *)GetRoadwayWithNo(pRoadNo[i]);//根据编号或通讯ID获取车道
    if(pRoad!=NULL){
      nVideoType = pRoad->nVideoType;//摄象机类型
      DeleteBlobData(pRoad->pPhoto);//释放BLOB缓冲区
      pRoad->pPhoto = NULL;
     }
    else nVideoType = ROADVIDEO_NONE;

    if(nVideoType==ROADVIDEO_SDK2000)
       SDK2000_UnInit();
   }
  return(TRUE);
 }

//捕捉车道的图象
int CaptureRoadPhoto(void *pRoad)
 {
  ROADWAY *t;
  void *pDIB,*pPhoto;
  int rc;
  int nVideoType,nChan;

  if(pRoad==NULL)return(FALSE);

  t = (ROADWAY *)pRoad;
  nVideoType = t->nVideoType;//摄象机类型
  nChan= t->nVideoID;  //摄像机通道

  pPhoto = t->pPhoto;
  DeleteBlobData(pPhoto);//释放BLOB缓冲区
  pPhoto = NULL;

  if(nVideoType==ROADVIDEO_SDK2000){
    SDK2000_SetInPin(nChan+1);//设置视频源(1:AV1 2:AV2 0:SVHS)
    Sleep(100);  //延时
    pDIB=SDK2000_GetCurrentDib();//获取当前图像
    pPhoto =DIBToBlobData(pDIB);//DIB转换到BLOB(binary large object)数据
    SDK2000_FreeOneDib(pDIB);
   }
  t->pPhoto=pPhoto;

  return((int)pPhoto);
 }



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -