Gambas-it

Gambas3 => Programmazione => Topic aperto da: akrobaticone - 21 Luglio 2019, 11:02:41

Titolo: Salvare file immagine da webcam
Inserito da: akrobaticone - 21 Luglio 2019, 11:02:41
Ciao
vorrei salvare una immagine catturata da una webcam
seguendo le inicazioni dalla wiki
https://www.gambas-it.org/wiki/index.php?title=Estrarre_e_salvare_singole_immagini_da_una_ripresa_video_mediante_WebCam_effettuata_con_il_Componente_gb.media (https://www.gambas-it.org/wiki/index.php?title=Estrarre_e_salvare_singole_immagini_da_una_ripresa_video_mediante_WebCam_effettuata_con_il_Componente_gb.media)
ho fatto dicersi tentativi, ma lla ripresa della cam non viene visualizzata nella drawingarea, ma in una finestra che appare a  pieno form
allego il progetto, per la cronaca ho provato anche le altre opzioni suggerite dalla wiki

 
Titolo: Re:Salvare file immagine da webcam
Inserito da: Gianluigi - 21 Luglio 2019, 13:18:33
Ho apportato qualche modifica e qui funziona.  :ciao:
Titolo: Re:Salvare file immagine da webcam
Inserito da: cogier - 21 Luglio 2019, 14:59:17
Prova questa versione. È molto più semplice.
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 21 Luglio 2019, 16:14:27
ho fatto dicersi tentativi, ma lla ripresa della cam non viene visualizzata nella drawingarea, ma in una finestra che appare a  pieno form
A me i codici della wiki funzionano perfettamente.
Hai provato ad eseguirli "così come sono" ?

Aggiungo che alla chiusura della finestra principale del tuo programma, ottengo in console questo avviso di errore grafico:

"The program 'test' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadDrawable (invalid Pixmap or Window parameter)'.
  (Details: serial 123 error_code 9 request_code 151 minor_code 9)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
"
Titolo: Re:Salvare file immagine da webcam
Inserito da: Gianluigi - 21 Luglio 2019, 19:25:55
Il problema, almeno in Ubuntu, è che col programma di Akrobaticone e anche con quello di cogier non si vedono i pulsanti per fare la foto, i quali vengono nascosti dalla drawing e solo passandogli sopra col mause si intravedono a intermittenza per poi sparire una volta sopra.
Comunque cliccando nell'area del tasto si riescono ad ottenere le immagini.
Il progetto di Akrobaticone da questi errori:
Citazione
(test:3068): GdkPixbuf-WARNING **: 17:35:06.031: Unreco
gnized parameter (quality) passed to PNG saver.
The program 'test' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadDrawable (invalid Pixmap or Window parameter)'.
  (Details: serial 619 error_code 9 request_code 151 minor_code 9)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
Immagini catturate: 1

Nel progetto di cogier l'immagine della finestra è tutta tremolante e distorta e alla chiusura da l'errore:
Citazione
gb.media: warning: could not catch end of stream.

Il mio funziona benissimo e non da nessun errore o avviso e lo può usare anche fido come dimostra il risultato.

P.S. Comunque anche variandola la qualità rimane la stessa, scadente anche con le qt.
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 22 Luglio 2019, 08:32:01
@Vuott
I codici della wiki li ho eseguiti così come sono, ma il risultato era il medesimo
L'errore l'ho visto e pensavo fosse un problema derivante dallla Drawingarea, ma non ci ho capito molto

@Gianluigi, Cogier
i vostri programmi li ho provati e in effetti funzionano, anche quello di Cogier non va male sul mio PC
non avevo pensato di usare i contenitori, sono controlli che non riesco ancora a fare miei.....
Nelle mie intenzioni volevo creare un form dove la drawing area è una finestra contornata di altri controlli e quindi solo una parte del tutto
in pratica nel mio gestione manifestazioni vorrei dare la possibilità di scattare una foto ai pilloti per visualizzarla nelle relative schede
A questo punto cambio solo le modalità di visualizzazione, così come mi avete suggerito

@Cagnolino di Gianluigi
nulla di strano..il programma non funziona ancora, quindi tutto normale :-)) :D :D :D

@Tutti
Grazie per l'aiuto
Titolo: Re:Salvare file immagine da webcam
Inserito da: Gianluigi - 22 Luglio 2019, 09:21:32
 :D
Un consiglio, aggiungi questo codice se non vuoi che in mancaza di webcam il progetto crashi:
Codice: [Seleziona]
  If Not Exist(pl.URL) Then
    Message.Info("Nessuna webcam presente")
    Me.Close
  Endif
:ciao:
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 22 Luglio 2019, 09:26:59
:D
Un consiglio, aggiungi questo codice se non vuoi che in mancaza di webcam il progetto crashi:
Codice: [Seleziona]
  If Not Exist(pl.URL) Then
    Message.Info("Nessuna webcam presente")
    Me.Close
  Endif
:ciao:
:ok:
Dovrei anche fare un controllo per fare una lista dei dispositivi collegati e scegliere quello corretto
sul portatile c'è quella integrata nel monitor e una eventuale collegata su USB
questa sera ci lavoro
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 22 Luglio 2019, 10:43:10
@Vuott
I codici della wiki li ho eseguiti così come sono, ma il risultato era il medesimo

E' alquanto strano.
Forse c'è qualche problema di librerie o incompatibilità.
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 22 Luglio 2019, 10:52:19
Questa sera per sicurezza riprovo di nuovo
tra i vari tentativi non vorrei aver omesso qualche cosa
Titolo: Re:Salvare file immagine da webcam
Inserito da: Gianluigi - 22 Luglio 2019, 11:20:28
@vuott
Dovresti specificare che occorre creare progetti QT Application, altrimenti i test con i desktop GTK non funzionano a dovere.

@Akrobaticone
Con Gnome occorre riprovare con progetti QT Application.
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 22 Luglio 2019, 11:24:36
@vuott
Dovresti specificare che occorre creare progetti QT Application, altrimenti i test con i desktop GTK non funzionano a dovere.

@Akrobaticone
Con Gnome occorre riprovare con progetti QT Application.
Hai ragione
farò tutte le prove anche con QT
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 22 Luglio 2019, 11:26:39
Sì, è come dice Gianluigi: c'è questa incompatibilità con GTK.
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 22 Luglio 2019, 11:37:54
@vuott
Dovresti specificare che occorre creare progetti QT Application, altrimenti i test con i desktop GTK non funzionano a dovere.

Ho provveduto, grazie.
Titolo: Re:Salvare file immagine da webcam
Inserito da: Gianluigi - 22 Luglio 2019, 13:11:08
:D
Un consiglio, aggiungi questo codice se non vuoi che in mancaza di webcam il progetto crashi:
Codice: [Seleziona]
  If Not Exist(pl.URL) Then
    Message.Info("Nessuna webcam presente")
    Me.Close
  Endif
:ciao:
:ok:
Dovrei anche fare un controllo per fare una lista dei dispositivi collegati e scegliere quello corretto
sul portatile c'è quella integrata nel monitor e una eventuale collegata su USB
questa sera ci lavoro

Mi sono dimenticato un Return dopo Me.Close:
 
Codice: [Seleziona]
pl.URL = "v4l2:///dev/video0"
  If Not Exist(pl.URL) Then
    Message.Info("Nessuna webcam presente")
    Me.Close
    Return
  Endif

Altrimenti ottieni errore su Play.
Riguardo il controllo dei dispositivi, lascio magnanimamente a vuott il compito di risponderti  ;D
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 22 Luglio 2019, 13:32:47
Riguardo il controllo dei dispositivi, lascio magnanimamente a vuott il compito di risponderti
La prima fonte è sempre la nostra wiki:

https://www.gambas-it.org/wiki/index.php?title=Conoscere_i_driver_video_disponibili_nel_sistema_mediante_le_funzioni_esterne_del_API_di_SDL2
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 22 Luglio 2019, 22:01:07
sto riprovando i codici della wiki con le qt, ma mi funziona solo la prima
le altre si bloccano tutte sul pl.play() perchè troivano l'oggetto vuoto
mi sa che sto perdendo di vista qualche cosa...
il codice l'ho copiato pari pari
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 23 Luglio 2019, 00:28:47
sto riprovando i codici della wiki con le qt, ma mi funziona solo la prima
le altre si bloccano tutte sul pl.play() perchè troivano l'oggetto vuoto
...
il codice l'ho copiato pari pari

Prova adesso.
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 23 Luglio 2019, 23:12:40
@vuott
non ci siamo ancora
non trova la webcam e da errore ancora su pl.play

per quanto riguarda la ricerca dei dispositivi
https://www.gambas-it.org/wiki/index.php?title=Conoscere_i_driver_video_disponibili_nel_sistema_mediante_le_funzioni_esterne_del_API_di_SDL2 (https://www.gambas-it.org/wiki/index.php?title=Conoscere_i_driver_video_disponibili_nel_sistema_mediante_le_funzioni_esterne_del_API_di_SDL2)
nonostante che la libreria richiesta sia installata non la trova


Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 23 Luglio 2019, 23:16:43
non trova la webcam e da errore ancora su pl.play
Hai provato a cambiare il file-device in pl["device"] = "/dev/......"?



nonostante che la libreria richiesta sia installata non la trova
Non "LA" trova... cosa ?
Cosa viene stampato in console ?
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 23 Luglio 2019, 23:56:49
il device l'ho cambiato come hai suggerito, ma non funziona ancora, l'errore è sempre su pl.play
tieni conto che il primo programma della pagina invece funziona
la libreria non viene trovata nel sistema e il proramma gambas riporta l'errore, la consolle segnala solamente che vengono utilizzate le qt4 al posto delle qt5

Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 00:05:02
A me funzionano tutte.

Allega qui per favore il tuo programma.
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 24 Luglio 2019, 00:20:24
allego i due progetti

la versione di libsdl2 è 2.0.8
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 00:33:42
il programma test nel file compresso webcam a me funziona perfettamente e fluido.
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 00:35:37
Anche xxx funziona.
Ottengo questi driver in console:
0   x11
1   mir
2   wayland
3   dummy
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 24 Luglio 2019, 00:36:30
allora è un problema mio locale
domani provo su un altro pc con mint 19
su questo ho xubuntu 18.04
per il momento grazie mille Vuott :ok:
 che distribuzione hai sul tuo PC?
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 00:43:23
Io ora ho un portatile:
[System]
Gambas=3.13.90 6c79771 (master)
OperatingSystem=Linux
Kernel=5.0.0-20-generic
Architecture=x86_64
Distribution=Linux Mint 19.1 Tessa
Desktop=CINNAMON
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 24 Luglio 2019, 00:48:20
il mio sistema
[System]
Gambas=3.13
OperatingSystem=Linux
Kernel=4.15.0-50-generic
Architecture=x86_64
Distribution=Ubuntu 18.04.2 LTS
Desktop=XFCE
Theme=Gtk
Language=it_IT.UTF-8
Memory=3877M

[Libraries]
Cairo=libcairo.so.2.11510.0
Curl=libcurl.so.4.5.0
DBus=libdbus-1.so.3.19.4
GStreamer=libgstreamer-1.0.so.0.1401.0
GTK+2=libgtk-x11-2.0.so.0.2400.32
GTK+3=libgtk-3.so.0.2200.30
OpenGL=libGL.so.1.0.0
Poppler=libpoppler.so.73.0.0
QT4=libQtCore.so.4.8.7
QT5=libQt5Core.so.5.9.5
SDL=libSDL-1.2.so.0.11.4
SQLite=libsqlite3.so.0.8.6

libSDL  non è alla versione 2?
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 00:54:08
Anche a me non riporta la versione 2.

Verifica se hai questo file di libreria:

   /usr/lib/x86_64-linux-gnu/libSDL2.so
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 01:01:01
Comunque, se tu hai la libreria SDL2, in cima al codice sostituisci la chiamata della libreria "libSDL2-2.0" con:

   
Codice: [Seleziona]
Library "libSDL2"
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 24 Luglio 2019, 01:02:09
trovata
libSDL2-2.0.so.0
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 01:04:36
trovata
libSDL2-2.0.so.0

Ma allora ce l'hai.

Fammi capire meglio.
Quando tu lanci il codice, ti si pianta e dà errore sulla riga della chiamata della libreria dicendo che non la trova ?
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 01:06:53
Preciso la domanda:

ti dà ERRORE, oppure semplicemente non vedi niente in console ?
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 24 Luglio 2019, 01:08:58
mi da errore dicendo che non trova la libreria
si pianta sulla riga
  SDL_Init(SDL_INIT_VIDEO)
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 01:16:30
Hai fatto la prova con questo ?

Library "libSDL2"
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 01:18:59
Scusa, ho visto che hai attivato anche i Componenti:
gb.form
gb.gui.qt
gb.image

disattivali e prova.
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 24 Luglio 2019, 01:20:53
Hai fatto la prova con questo ?

Library "libSDL2"
si ho provato anche questa e altre variazioni sul tema
per il  momento chiudo e vado a nannna :sleepy:
domani provo con l'altro PC
Grazie Vuott :2birre:
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 01:23:11
Prova a togliere quei 3 Componenti.
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 24 Luglio 2019, 01:25:44
negativo anche senza i tre componenti.....
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 01:27:49
...non so cosa dire.    :-\
Ripeto a me il tuo file funziona.
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 24 Luglio 2019, 08:30:39
la notte porta consiglio...
funziona se la libreria la dichiaro così
Library "libSDL2-2.0:0"

e se in futuro cambia la versione della libreria?
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 24 Luglio 2019, 10:51:38
e se in futuro cambia la versione della libreria?
......dovrai specificare il nuovo numero della versione.


Comunque nella wiki inserirò quella specificazione della versione.
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 26 Luglio 2019, 08:36:08
aggiornamento
su Mint 19 i programmi webcam funzionano
il video però non appare nella drawingarea così come disegnata, ma nel form contrornato da cornice nera
se massimizzo il form si allarga anche l'immagine
il video è fluido e normalmente definito
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 26 Luglio 2019, 09:09:01
A me funziona regolarmente.



il video però non appare nella drawingarea così come disegnata
In che senso ? Disegnata da chi/cosa ?



ma nel form contornato da cornice nera

Puoi allegare un file immagine con la schermata di questa situazione ?
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 26 Luglio 2019, 09:28:49
A me funziona regolarmente.



il video però non appare nella drawingarea così come disegnata
In che senso ? Disegnata da chi/cosa ?
nel programma generi una drawingarea mediante il codice e ne fissi le dimensioni
il video sembra non essere visualizzato al suo interno, ma all'interno del form

ma nel form contornato da cornice nera

Puoi allegare un file immagine con la schermata di questa situazione ?
provo a registrare la scrivania e ti mando un video
appena riesco
Titolo: Re:Salvare file immagine da webcam
Inserito da: Gianluigi - 26 Luglio 2019, 09:33:53
aggiornamento
su Mint 19 i programmi webcam funzionano
il video però non appare nella drawingarea così come disegnata, ma nel form contrornato da cornice nera
se massimizzo il form si allarga anche l'immagine
il video è fluido e normalmente definito

Che componente grafico usi, gb.gui o gb.gui.qt?

Comunque sarebbe ora di imparare ad usare i contenitori come si deve, altrimenti avrai sempre dei malfunzionamenti.
Basta prenderci la mano e poi diventa tutto molto più semplice da gestire.
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 26 Luglio 2019, 10:37:14
aggiornamento
su Mint 19 i programmi webcam funzionano
il video però non appare nella drawingarea così come disegnata, ma nel form contrornato da cornice nera
se massimizzo il form si allarga anche l'immagine
il video è fluido e normalmente definito

Che componente grafico usi, gb.gui o gb.gui.qt?

Comunque sarebbe ora di imparare ad usare i contenitori come si deve, altrimenti avrai sempre dei malfunzionamenti.
Basta prenderci la mano e poi diventa tutto molto più semplice da gestire.

sante parole...hai ragione

sto usando le qt,
una immagine penso dovrebbe chiarire un po di cose
ma prima di domani mattina non riesco a postare nulla
Titolo: Re:Salvare file immagine da webcam
Inserito da: vuott - 26 Luglio 2019, 10:42:41
sto usando le qt,

Pure io, e a me funziona.
Titolo: Re:Salvare file immagine da webcam
Inserito da: akrobaticone - 27 Luglio 2019, 09:26:06
Ho rifatto tutto da capo ed ora su mint sembra funzionare come a Vuott
immagine video disegnata all'interno della drawingarea che mantiene le dimesioni predefinite nel codice
(progetto con QT)
probabilmente mi trascinavo qualche cosa di sbagliato :-[
su Xubuntu non c'è verso

ho provato a collegare una webcam esterna che viene vista dal sistema come video1
se nel codice provo a sostituire video0 con video1 mi da il solito errore pl.play
presumo che per usare una nuova cam bisogna in qualche modo disabilitare quella integrata