Bilder von DV-Camera

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Bilder von DV-Camera

Beitrag 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:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Na ?
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Beitrag 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
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Leider scheint das hier niemand zu wissen. Hab jedenfalls noch nichts zurückbekomen. :(
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Such mal nach twain ..
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Beitrag 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
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

AVICap geht bei mir aber irgendwie nicht. :cry:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Beitrag 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
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Beitrag 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
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Beitrag 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
Antworten