Posts tagged ‘sourceforge’

10 giugno 2011

I giorni di pioggia non fanno poi così male

Questi ultimi giorni di pioggia mi hanno portato a scoprire un serio bug (o quasi) su camsensor che non impediva il cambio continuo del valore di retroilluminazione in caso di valori di luce esterna “stabili” nell’intorno di un salto (15%, 25%, 35%, …).

La scala percentuale della luminosità ambientale infatti non è lineare – in realtà è quasi logaritmica – e quindi le normali oscillazioni del valore di luminosità che si hanno a causa dei limiti materiali (la webcam e i normali movimenti dell’utente) provocano delta sulle misure notevoli. Se per disgrazia il cielo temporalesco, ovvero 50-60% di luminosità (con la pendenza della funzione che comincia a farsi sentire), diventa più/meno annuvolato rapidamente, ci si trova nella brutta situazione di avere la retroilluminazione che passa da passo precedente a successivo e vice-versa ad ogni cattura (ogni 0.5 secondi… disturbante)

Poiché, come dicevo uno o due articoli fa, ormai sono totalmente dipendente da questa mia applicazione, il doverla escludere anche solo per brevi periodi di tempo (altra grossa feature da implementare in futuro) non mi dava pace. Ho pensato un pochetto e alla fine ho adottato questa banale soluzione:
appena cambia la retroilluminazione parte un conteggio a 60 secondi, prima dello scadere del conteggio viene inibita l’azione di scrittura dei valori di retroilluminazione, a meno che non si tratti di un cambio repentino (classica luce accesa/spenta) che è ininfluente all’atto del conteggio. Ci tengo a precisare che i valori mostrati nei log non risentono dell’inibizione e quindi sono “reali”, non falsati.

Poiché queste modifiche potrebbero ledere in maniera consistente la risposta del programma nel primo minuto di avvio (per ora i test che ho effettuato non hanno presentato anomalie), come le altre dalla revisione 19 in poi per ora rimangono solo su subversion.
Ormai pensavo di pulire qualcosina sul codice, ottimizzare questa nuova feature e quindi rilasciare una nuova alpha. Il tutto, tra esami e resto penso mi occuperà un mesetto.

Per tutti quelli che non hanno pazienza (io consiglio CALDAMENTE di usare la versione sperimentale su subversion…) il link è il solito: camsensor/code

20 aprile 2011

Camsensor alpha

Annuncio con immenso piacere di aver cominciato un progetto che avevo intenzione di fare da parecchio tempo, o meglio, che come le altre decine di piccole idee avevo abbozzato e poi abbandonato per quasi un anno.

camsensor logoIl progetto in questione è camsensor (http://sourceforge.net/projects/camsensor), un programma, ridotto ad un singolo script in python, che permette di usare la normale webcam del laptop, o una dedicata (con piccoli aggiustamenti alla scala di riferimento) come sensore di luce.
Il progetto dipende solo da python e dai moduli opencv (o cv) di python.
Attualmente, la versione è appena passata da pre-alpha ad alpha ed ha queste caratteristiche:
– Cattura di un immagine dalla webcam
– Calcolo della luminosità media sulla base di una versione scalata 8×6 px dell’immagine catturata
– Confronto fra la retroilluminazione dello schermo attuale e quella consigliata per l’ambiente (per sistemi congruenti al mio laptop)
Giusto stamattina ho velocizzato le operazioni di calcolo (non che ce ne fosse troppo bisogno) eliminando due passaggi ridondanti.

Inizialmente pensavo di tenere per me lo script (come ho quasi sempre fatto finora), ma data la bellezza/pulizia del risultato finale ho pensato di renderlo pubblico, così – spero – avrò modo di imparare a scrivere sempre meglio grazie ai consigli di chi ne sa più di me e dà un occhiata al codice.