Seite 1 von 2

Bilder von DV-Camera

Verfasst: 02.10.2005 10:46
von Batze
Wie komme ich an das Live-Video von einer MiniDV-Kamera ran?
Das Bild kommt über FireWire, aber ich habe es mit PB noch nicht geschafft es zu bekommen.
Ich hoffe mir kann jemand helfen. :freak:

Verfasst: 06.10.2005 18:24
von Batze
Na ?

Verfasst: 29.11.2005 15:10
von super_castle
hallo, ich such auch ein hinweis, wie man bilder von einer cmoscam auf dem bildschirm mit den wintv-befehlen(video-capture) realisieren kann.
in bcxtoc geht es schon. habe mir pure neu angeschafft.

mfg castle

Verfasst: 29.11.2005 16:01
von Batze
Leider scheint das hier niemand zu wissen. Hab jedenfalls noch nichts zurückbekomen. :(

Verfasst: 29.11.2005 16:06
von bobobo
Such mal nach twain ..

Verfasst: 29.11.2005 17:43
von super_castle
so sehen die daten aus, wenn ich es in bcxtoc anwende, es gibt noch mehr daten, die brauche ich aber zur zeit nicht:

Code: Alles auswählen

 Const WM_USER = &H400
 Const ws_visible = 0x10000000
 Const ws_child = 0x40000000
 Const WM_CAP_EDIT_COPY = WM_USER + 30
 Const wm_cap_driver_connect = WM_USER + 10
 Const wm_cap_set_preview = WM_USER + 50
 Const wm_cap_set_overlay = WM_USER + 51
 Const WM_CAP_SET_PREVIEWRATE = WM_USER + 52
 Const WM_CAP_SEQUENCE = WM_USER + 62
 Const WM_CAP_SINGLE_FRAME_OPEN = WM_USER + 70
 Const WM_CAP_SINGLE_FRAME_CLOSE = WM_USER + 71
 Const WM_CAP_SINGLE_FRAME = WM_USER + 72
 Const DVM_DIALOG = WM_USER + 100
 Const PREVIEWRATE = 30
 Const WM_CAP_STOP = WM_USER + 68
 Const WM_CAP_ABORT = WM_USER + 69

 declare: 
 Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA"
 (lpszWindowName As LPCSTR,dwStyle As DWORD,x As Integer,y As Integer,nWidth As Integer,
 nHeight As Integer,hWnd As HWND,nID As Integer) As HWND

 einmal aufrufen :
 hwndc = capCreateCaptureWindow("CaptureWindow", ws_child Or ws_visible, 10, 25, 310, 325, Form1, 0)

 in einer schleife aufrufen ---> bild wird im fenster dargestellt:
      call SendMessage(hwndc, wm_cap_driver_connect, 0, 0)
      call SendMessage(hwndc, wm_cap_set_preview, 1, 0)
      call SendMessage(hwndc, WM_CAP_SET_PREVIEWRATE,PREVIEWRATE, 0)

 call SendMessage(hwndc, WM_CAP_EDIT_COPY, 0, 0) --->bild wird hiermit  in die ablage kopiert
mfg castle

---------------
Ich hab mir mal erlaubt die CodeTags nachträglich einzufügen
Gruss bobobo

Verfasst: 01.12.2005 19:11
von Batze
AVICap geht bei mir aber irgendwie nicht. :cry:

Verfasst: 01.12.2005 23:51
von super_castle
das signal wird in eine wintv-karte über antennenkabel oder fbaskabel eingespeist. dafür ist das programm. es werden dann die bilder der wintv-karte in einem fenster in purebasic dargestellt.

mfg castle

Verfasst: 04.12.2005 17:49
von super_castle
hallo...
dieses programm habe ich aus diesem forum und ein bisschen geändert. damit kann man ein bild über die video-tvkarte einlesen und in die ablage kopieren und evtl bei bedarf von der ablage in eine bmp-datei kopieren. funktioniert.

#WM_CAP_START = #WM_USER
#WM_CAP_SET_CALLBACK_ERROR = #WM_CAP_START + 2
#WM_CAP_SET_CALLBACK_STATUS = #WM_CAP_START + 3
#WM_CAP_SET_CALLBACK_YIELD = #WM_CAP_START + 4
#WM_CAP_SET_CALLBACK_FRAME = #WM_CAP_START + 5
#WM_CAP_SET_CALLBACK_VIDEOSTREAM = #WM_CAP_START + 6
#WM_CAP_SET_CALLBACK_WAVESTREAM = #WM_CAP_START + 7
#WM_CAP_DRIVER_CONNECT = #WM_CAP_START + 10
#WM_CAP_DRIVER_DISCONNECT = #WM_CAP_START + 11
#WM_CAP_DRIVER_GET_CAPS = #WM_CAP_START + 14
#WM_CAP_DLG_VIDEOFORMAT = #WM_CAP_START + 41
#WM_CAP_DLG_VIDEOSOURCE = #WM_CAP_START + 42
#WM_CAP_DLG_VIDEODISPLAY = #WM_CAP_START + 43
#WM_CAP_SET_PREVIEW = #WM_CAP_START + 50
#WM_CAP_SET_PREVIEWRATE = #WM_CAP_START + 52
#WM_CAP_GET_STATUS = #WM_CAP_START + 54
#WM_CAP_FILE_SAVEDIB = #WM_CAP_START + 25
#WM_CAP_SET_SCALE = #WM_CAP_START + 53
#WM_CAP_SET_CALLBACK_CAPCONTROL = #WM_CAP_START + 85
#WM_CAP_EDIT_COPY = #WM_CAP_START + 30
#WM_CAP_GRAB_FRAME = #WM_CAP_START+60


hWnd = OpenWindow(0, 0, 0, 430, 400, #PB_Window_SystemMenu, "Robbycam")

CreateGadgetList(WindowID())

If OpenLibrary(0, "AVICAP32.DLL")

hWebcam = CallFunction(0, "capCreateCaptureWindowA", "BLUBBER", #WS_VISIBLE + #WS_CHILD, 5, 5, 420, 360, hWnd, 0)

SendMessage_(hWebcam, #WM_CAP_DRIVER_CONNECT, 0 , 0) ;<- da halt auf den entsprechenden treiber(0-9) ändern
SendMessage_(hWebcam, #WM_CAP_SET_SCALE , 1 , 0)
SendMessage_(hWebcam, #WM_CAP_SET_PREVIEWRATE, 50, 0)
SendMessage_(hWebcam, #WM_CAP_SET_PREVIEW, 1 , 0)

Repeat
Event = WindowEvent()

SendMessage_(hWebcam, #WM_CAP_GRAB_FRAME, 0 , 0)
SendMessage_(hWebcam, #WM_CAP_EDIT_COPY, 0 , 0)

Select Event
Case #PB_Event_CloseWindow
Quit = 1
EndSelect

Delay(10)
Until Quit = 1

SendMessage_(hWebcam, #WM_CAP_SET_PREVIEW, 0, 0)
SendMessage_(hWebcam, #WM_CAP_DRIVER_DISCONNECT, "BLUBBER", 0)
CloseWindow(0)
CloseLibrary(0)

EndIf
End




mfg castle

Verfasst: 04.12.2005 18:54
von super_castle
ich möchte dieses bild aus der ablage im gleichen fenster rechts davon als image darstellen , weil ich die pixel auswerten möchte (hinderniserkennung für den robby).
wie geht das?

mfg castle