我用CCD摄像头做智能车的寻迹途径,想用VB做一个监控程序
要能看到CCD传到计算机的图象
哪位高手指点一二

解决方案 »

  1.   

    你去买一片 天敏 SDK-2500 双镜头或 SDK-2000单镜头摄像补捉卡, 他们会附OCX给你, 要让影像实时显示,很简单的.下面这个代码只是让你参考,你是无法运行的,因你需要硬件与这个 sdk2500.ocx'*********************** Form1 代码
    Private Sub Form_Load()
       g_bConnected = False
       g_nCapWidth = 640   '720   '232
       g_nCapHeight = 480  '576  '174
       g_nPlayState = 0
       '颜色设定
       SDK25001.Brightness = 113
       SDK25001.Contrast = 60
       SDK25001.Hue = 0
       SDK25001.Saturation = 64
       SDK25001.Sharpness = -5
       '连接
       Call btnConnect_Click
       '*********************实时影像同步开始显示
    End SubPrivate Sub btnConnect_Click()
       Call SDK25001.Connect(0, True, g_nCapWidth, g_nCapHeight)
       '全局变量更新
       g_bConnected = True
       g_nPlayState = 1
    End SubPrivate Sub camera() '拍照片
       If Trim(Labseq.Caption) <> "" Then
          catchpic = maindisk + "catchpic\" + Trim(Labseq.Caption) + ".jpg"
          Call SDK25001.SaveImageToJpg(catchpic, 100, 1, False)
          Sleep (500)
          picname = catchpic
          camerayn = True
       Else
          picname = maindisk + "trucks\bawang.jpg"
       End If
       If Dir(picname) <> "" Then
          Imgpic.Picture = LoadPicture(picname)
       Else
          Imgpic.Picture = LoadPicture("")
       End If
    End Sub
    '***************** .bas 模块部份代码Option Explicit'连接用到的全局变量
    Public g_bConnected As Boolean
    Public g_nCapWidth As Long
    Public g_nCapHeight As Long
    Public g_nPlayState As Long '0:未连接 1:播放 2:暂停 3:停止Public Enum VIDEOSOURCE
        VIDEO_IN_1 = 0 'AV视频源1
        VIDEO_IN_2 = 1 'AV视频源2
        VIDEO_IN_3 = 2 '保留
        VIDEO_IN_4 = 3 '保留
        SVIDEO_IN = 4   'SVIDEO视频源
    End Enum
    '动态检测用到的全局变量
    Public g_bInput As Boolean
    Public g_bMove As Boolean'输入的视频源
    Public vs As VIDEOSOURCE'循环抓拍用到的全局变量
    Public g_nCycNum As Long    '每几帧抓一帧
    Public g_strCircularSnapDir As String
    Public g_bCircularSource(3) As Boolean
    Public g_bCircularSnapBmp As Boolean
    Public g_nPersist As Long
    Public g_nCapSourceCount As Long '要抓照的通道数量,若为1则连续拍.
    Public g_bContinuous As Boolean '是否在连续拍Public g_nSource As Long    '当前要抓的通道,从0开始
    Public g_nPic As Long   '用于跳过不想抓的帧,只要开始赋初值0就行了,以后自动赋值
    Public g_nCircularPicCount As Long '当前抓的是第几张图,从1开始,每次抓前赋初值.'捕获参数设置用到的全局变量
    Public g_strVideoPath As String
    Public g_strPicturePath As String
    Public g_bBmp As Boolean
    Public g_nCurComp As Long
    Public g_bRecAudio As BooleanPublic Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
    Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
    Public Declare Function XD_ShowVCMDialog Lib "TXvidDll" (ByVal hwnd As Long) As LongPublic Type BrowseInfo
         hwndOwner As Long
         pIDLRoot As Long
         pszDisplayName As Long
         lpszTitle As Long
         ulFlags As Long
         lpfnCallback As Long
         lParam As Long
         iImage As Long
    End TypePublic Const BIF_RETURNONLYFSDIRS = 1
    Public Const MAX_PATH = 260Public Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
    Public Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
    Public Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long'http://cbm666.com/demo.exe  这是我在2006年做的高速路收费监控系统之演示'
      

  2.   

    切,吓我一跳,还以为楼主要用VB做CCD驱动咧。简单,买个USB摄像头,下载个VIDEOCAPTURE控件,设置一下,就可以在程序中获得视频的每一帧了。