Benötige Hilfe bei einer VideoAnalyse. Wollte sowas machen wie EyeToy oder so. Hab aber keine Ahnung, wie ich das eine WebCam-Beispiel aus dem Forum so einbinden kann, dass ich irgendwie auf das Bild zugreifen kann und da meine Berechnungen machen kann.
Kann mir vielleicht jemand sagen, wie ich Pixel-Analyse machen kann, wie es schnell funktioniert. Vielleicht ein Beispiel für Kantenfinden oder so.
Würd auch gern wissen, wie ich als Quelle dann DV-IEEE1394 über WDM und auch Videos an sich nutzen kann.
Wollte sowas machen, dass ich das DV-Signal auf 16:9 strecke bei einem 16:10 Notebook. Das macht NeroVision nämlich so nicht.
Brauch das auch noch für andere Dinge. Würd mich über eure Hilfe freuen
Wie geht DrawingBuffer() mit Sprites zusammen?
Wie geht DrawingBuffer() mit Sprites zusammen?
Zuletzt geändert von Xaby am 12.04.2006 10:50, insgesamt 3-mal geändert.
Kinder an die Macht http://scratch.mit.edu/
Die kenn ich, aber würdest du mir bitte auch genau
beschreiben, wie ich sie für meinen Zweck einbinden muss?
Ich bin mit dem Ding nämlich nicht klar gekommen.
Ich bin mit dem Ding nämlich nicht klar gekommen.
Kinder an die Macht http://scratch.mit.edu/
Kann mir jemand einen Tipp geben

Ich dachte daran, dass ich erst einmal es mit Bildern versuche.
Da die Kanten finde, dann oberhalb und unterhalb einer möglichen Linie zwei eigene zeichne. Und wenn dazwischen eine bestimmte Anzahl von Punkten vorkommt, könnte das eine Linie sein.
Es geht darum, z.B. eine Zeichnung freihand von einem Blatt in GeometrischeFormen zu wandeln.
Aus einem Vieleck, vielleicht einen Kreis, weil es eigentlich einer werden sollte. Vielleicht geht das auch einfacher, wenn man es irgendwie über Mausgestiken versucht.
Hat jemand eine Ahnung, ob es schon Code in Pure für etwas ähnliches gibt?
Und mit welchen Befehlen kann ich folgenden Code benutzen für mein Vorhaben?
Code: Alles auswählen
#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_USER + 10
#WM_CAP_DRIVER_DISCONNECT = #WM_USER + 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_USER + 25
#WM_CAP_SET_SCALE = #WM_USER + 53
#WM_CAP_SET_CALLBACK_CAPCONTROL = #WM_CAP_START + 85
Structure VIDEOHDR
lpData.l
dwBufferLength.l
dwBytesUsed.l
dwTimeCaptured.l
dwUser.l
dwFlags.l
dwReserved.l[3]
EndStructure
Structure CAPSTATUS
uiImageWidth.l
uiImageHeight.l
fLiveWindow.l
fOverlayWindow.l
fScale.l
ptScroll.POINT
fUsingDefaultPalette.l
fAudioHardware.l
fCapFileExists.l
dwCurrentVideoFrame.l
dwCurrentVideoFramesDropped.l
dwCurrentWaveSamples.l
dwCurrentTimeElapsedMS.l
hPalCurrent.l
fCapturingNow.l
dwReturn.l
wNumVideoAllocated.l
wNumAudioAllocated.l
EndStructure
hWnd = OpenWindow(0, 0, 0, 400, 400, #PB_Window_SystemMenu, "WebCamTest")
CreateGadgetList(WindowID())
If OpenLibrary(0, "AVICAP32.DLL")
hWebcam = CallFunction(0, "capCreateCaptureWindowA", "BLUBBER", #WS_VISIBLE + #WS_CHILD, 10, 10, 380, 380, 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()
Select Event
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
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
Bitte...

Kinder an die Macht http://scratch.mit.edu/
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
http://www.purebasic.fr/german/viewtopi ... ht=capture
Super, so fast
Kann mir ein Beispiel mit DrawingBuffer() und einer PixelOperation geben?
Ach und noch was!:
Auszug aus dem oberen Code, wo der Link ist.
Wieso habe ich kein Image, ich kann zwar DrawImage() benutzen, aber keine anderen Befehle.
Also das Rechte ist es wohl noch nicht mit
Das liefert kein sauberes Image zurück.
Wie kann ich also mein Bild manipulieren?
Super, so fast


Kann mir ein Beispiel mit DrawingBuffer() und einer PixelOperation geben?
Ach und noch was!:
Code: Alles auswählen
If Event = #PB_EventGadget
If GadgetID = #Button_0
Link = GetClipboardData(#PB_ClipboardImage)
If Link <> 0
Debug IsImage(Link)
Debug Link
Wieso habe ich kein Image, ich kann zwar DrawImage() benutzen, aber keine anderen Befehle.
Also das Rechte ist es wohl noch nicht mit
Code: Alles auswählen
Link = GetClipboardData(#PB_ClipboardImage)

Kinder an die Macht http://scratch.mit.edu/
Ich hab einen Ansatz.
Ich hab's geschafft. Da ja wenigstens DrawImage() ging.
Hab ich Link auf ein neues Sprite gezeichnet mit DrawImage() und StartDrawing(SpriteOutput(MeinSprite))
...
Also darstellen und Speichern und drehen ist möglich auch 2D-Pixelmanipulation. Mit Plot und Pixel
Aber die sind so lam. Bitte helft mir mal und sagt mir, wie es mit den Buffern geht.
Danke

Hab ich Link auf ein neues Sprite gezeichnet mit DrawImage() und StartDrawing(SpriteOutput(MeinSprite))
...
Also darstellen und Speichern und drehen ist möglich auch 2D-Pixelmanipulation. Mit Plot und Pixel

Aber die sind so lam. Bitte helft mir mal und sagt mir, wie es mit den Buffern geht.
Danke

Kinder an die Macht http://scratch.mit.edu/