+ Rispondi
Pagina 1 di 4 1 2 3 ... UltimaUltima
Risultati da 1 a 10 su 36
  1. #1

    Iscritto dal
    27/09/2011
    Messaggi
    2,095

    screen capture Visual Basic

    Buonasera a tutti!
    vi espongo ciò che vorrei fare, premettendo che come programmazione su pc ho usato solo VB fin'ora ma ho qualche conoscenza di C derivante dai pic

    Mi serve un modo per campionare il colore di alcuni pixel sullo schermo, diciamo un centinaio, ed il tutto deve avvenire velocemente, diciamo in real time
    Ho provato la funzione GetPixel ma è più lenta dell'AX di Darl col clima acceso

    any other ideas?

    grazie mille

  2. #2
    nic
    nic non è in linea
    Still Alive
    Iscritto dal
    22/09/2011
    Località
    Napoli
    Messaggi
    2,632
    Sperando che per vb intendi vb.net ti ho fatto un esempio al volo qui, dovrebbe leggere il colore di 200 pixel in circa 60ms sul mio pc
    My name is Legion, for we are many.

  3. #3

    Iscritto dal
    13/12/2011
    Località
    Salento!
    Messaggi
    6,825
    ora no ho modo di provare, a casa ho solo linux. Ma a naso se usi la GetPixel della gdi32.dll utilizzando le api di window sarà sicuramente più veloce della analoga in ambiente net.
    Se spieghi meglio quello che devi fare magari riusciamo a trovare una soluzione ottimale. Poi in realtime...quanti fps? Sei certo di un numero preciso di fps?
    Ed hai necessità del realtime o può essere una post-elaborazione? L'ideale è che in C tu faccia la lettura del campione e poi la passi al .net che la elabora.
    Cosa vuoi ottenere?

  4. #4

    Iscritto dal
    27/09/2011
    Messaggi
    2,095
    ringrazio nick per l'esempio appena ho un attimo me lo studio bene!
    avevo fatto un programmino di prova che usava la gdi32.dll ma ci metteva 30ms circa a singolo punto.

    Comunque il mio scopo è realizzare delle barre di led che imitano le AmbiLight montate sui tv philips, ho realizzato un software in C per pic che, tramite comandi ricevuti da seriale, imposta il colore di due barre RGB poste ai lati dello schermo.
    Lato pc serve quindi un software che catturi il colore di un "tot" di pixel sulle due fasce laterali dello schermo, li analizzi al volo, ne calcoli il colore medio (ma questo non è un problema in quanto a tempistiche) e mandi il risultato sulla COM... il pic riceve, smandruppa il comando e pilota i led in pwm di conseguenza.

    Si capisce quindi che mentre si guarda un film l'effetto dev'esser real-time, se va a scatti è uno schifo

    Quando iniziai il progetto usavo linux e realizzai l'interfaccia su pc con Gambas e.... funzionava benissimo! Se la memoria non mi inganna il framerate era di 15-20fps su un pentiumIV, non velocissimo ma non si notava la scattosità
    Ora mi serve di portare tutto su windows7

    questo è quanto. ottenere 20fps andrebbe già benissimo

    ps. c'è un modo per allegare i .rar?

  5. #5

    Iscritto dal
    06/11/2011
    Messaggi
    7,965
    Per allegare i .rar prova a rinominarli in .txt, dovrebbe andare
    * i7 860 @4.2 - EKWB HF Full Copper/IC Diamond/XSPC 360/Sanso PDH 054
    * EVGA P55 Classified 200 - 4x4GB Corsair Vengeance @1600c9 1.5V
    * 2x Samsung 840 EVO 250GB - 2x WD Red 2TB RAID0 - 1x WD Green 4TB
    * Gygabite GTX 1080 G1
    * ASUS ROG Swift PG27AQ - Antec TPQ 1200W OC

  6. #6
    nic
    nic non è in linea
    Still Alive
    Iscritto dal
    22/09/2011
    Località
    Napoli
    Messaggi
    2,632
    Quote Originariamente inviato da Matteo92 Visualizza il messaggio
    ringrazio nick per l'esempio appena ho un attimo me lo studio bene!
    avevo fatto un programmino di prova che usava la gdi32.dll ma ci metteva 30ms circa a singolo punto.

    Comunque il mio scopo è realizzare delle barre di led che imitano le AmbiLight montate sui tv philips, ho realizzato un software in C per pic che, tramite comandi ricevuti da seriale, imposta il colore di due barre RGB poste ai lati dello schermo.
    Lato pc serve quindi un software che catturi il colore di un "tot" di pixel sulle due fasce laterali dello schermo, li analizzi al volo, ne calcoli il colore medio (ma questo non è un problema in quanto a tempistiche) e mandi il risultato sulla COM... il pic riceve, smandruppa il comando e pilota i led in pwm di conseguenza.

    Si capisce quindi che mentre si guarda un film l'effetto dev'esser real-time, se va a scatti è uno schifo

    Quando iniziai il progetto usavo linux e realizzai l'interfaccia su pc con Gambas e.... funzionava benissimo! Se la memoria non mi inganna il framerate era di 15-20fps su un pentiumIV, non velocissimo ma non si notava la scattosità
    Ora mi serve di portare tutto su windows7

    questo è quanto. ottenere 20fps andrebbe già benissimo

    ps. c'è un modo per allegare i .rar?
    Capisco, nell'esempio che ti ho allegato, tagliando fuori la parte che scrive il risultato nella TextBox, dovresti riuscire a ridurre drasticamente il tempo di esecuzione di almeno un 5-6 volte ad occhio

    Sicuramente non è né il metodo più veloce né il più ottimizzato, ma può darsi che sia già sufficiente per quello che devi fare

    Per i file .rar penso proprio di no, perciò ho caricato tutto su dropbox
    My name is Legion, for we are many.

  7. #7

    Iscritto dal
    13/12/2011
    Località
    Salento!
    Messaggi
    6,825
    Quote Originariamente inviato da Matteo92 Visualizza il messaggio
    ringrazio nick per l'esempio appena ho un attimo me lo studio bene!
    avevo fatto un programmino di prova che usava la gdi32.dll ma ci metteva 30ms circa a singolo punto.

    Comunque il mio scopo è realizzare delle barre di led che imitano le AmbiLight montate sui tv philips, ho realizzato un software in C per pic che, tramite comandi ricevuti da seriale, imposta il colore di due barre RGB poste ai lati dello schermo.
    Lato pc serve quindi un software che catturi il colore di un "tot" di pixel sulle due fasce laterali dello schermo, li analizzi al volo, ne calcoli il colore medio (ma questo non è un problema in quanto a tempistiche) e mandi il risultato sulla COM... il pic riceve, smandruppa il comando e pilota i led in pwm di conseguenza.

    Si capisce quindi che mentre si guarda un film l'effetto dev'esser real-time, se va a scatti è uno schifo

    Quando iniziai il progetto usavo linux e realizzai l'interfaccia su pc con Gambas e.... funzionava benissimo! Se la memoria non mi inganna il framerate era di 15-20fps su un pentiumIV, non velocissimo ma non si notava la scattosità
    Ora mi serve di portare tutto su windows7

    questo è quanto. ottenere 20fps andrebbe già benissimo

    ps. c'è un modo per allegare i .rar?
    beh stando alle tempistiche 20ms = 50fps (considerando solo le rilevazioni) in teoria sei nei tempi.
    Per gli allegati io uso dropbox Comodo veloce e te lo gestisci te

  8. #8

    Iscritto dal
    13/12/2011
    Località
    Salento!
    Messaggi
    6,825
    credo che però se per te è troppo lenta la GetPixel della gdi32, l'unico modo che mi viene in mente per accelerare è interfacciarsi direttamente con i driver video (NVAPI | NVIDIA Developer Zone).
    E mi scoccia dirlo ma abbandonare il Net ed utilizzare codice nativo. Ah e ti conviene trovare i parametri da dare in pasto al compilatore per istruire il calcolo delle medie utilizzando le istruzioni SSE3 (stesso calcolo su n dati)

  9. #9

    Iscritto dal
    27/09/2011
    Messaggi
    2,095
    provo prima ad adattare il codice che mi ha gentilmente fornito nick
    non sono molto esperto di programmazione su PC, so usare giusto vb per quelle poche cose che mi servono, quindi già che mi parli di istruzioni SSE3 mi sembra di scalare l'everest

  10. #10
    nic
    nic non è in linea
    Still Alive
    Iscritto dal
    22/09/2011
    Località
    Napoli
    Messaggi
    2,632
    Quote Originariamente inviato da Matteo92 Visualizza il messaggio
    provo prima ad adattare il codice che mi ha gentilmente fornito nick
    non sono molto esperto di programmazione su PC, so usare giusto vb per quelle poche cose che mi servono, quindi già che mi parli di istruzioni SSE3 mi sembra di scalare l'everest
    Ho modificato un po' l'esempio, ora dovrebbe fare molto di più al caso tuo, considera le "fasce" di pixel laterali ed è multithreaded... ho medie di circa 200 fps sul mio pc (considera 1080 pixel x 2 ad ogni passaggio), dacci un sguardo: Click!
    My name is Legion, for we are many.


 
+ Rispondi
Pagina 1 di 4 1 2 3 ... UltimaUltima

Autorizzazioni

  • Non puoi iniziare nuove discussioni
  • Non puoi rispondere alle discussioni
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
Powered by vBulletin™ Version 4.1.5
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved
SEO by vBSEO ©2011, Crawlability, Inc.
Fuso orario: UTC +1, sono le 18:04.