Newsgroup: it.comp.lang.visual-basic
Titolo: Foto a 360 gradi

Ogni ora un sistema automatico costituito da una macchina fotografica
digitale montata su un cavalletto rotante effettua una decina di
fotografie, ruotando di un certo angolo ad ogni scatto. Questo dispositivo
è stato da me costruito senza soverchie difficoltà  (ho utilizzato un step
motor comandato tramite la porta seriale).
Adesso vorrei automatizzare l’assemblamento di queste foto, in modo
identico a quello effettuato da molti programmi forniti a sussidio delle
macchine fotografiche digitali. Il risultato finale, l’avrete già capito,
dovrebbe essere una fotografia a 360 gradi.
Posto che vedo molto difficoltosa l’impresa di realizzare qualcosa del
genere in puro VB (sia pur tenendo conto che in questo caso non ha
importanza se l’operazione di assemblamento viene effettuata in 5, 10 o 30
minuti o più) vi chiederei se siete a conoscenza di qualche utility
(magari a linea di comando) che realizzi quanto sopra indicato. In
alternativa (ma la vedo più difficile) potrei pensare di utilizzare un
qualche programma (quale ?) sotto Windows comandato tramite oppurtuni
SendKeys.
Vi ringrazio per ogni indicazione che vorrete fornirmi.
Marcabru
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Marcabru
se devi semplicemente affiancarle, non c'e' problema.
prendi un picture delle dimensioni totali, su un altro carichi una a una le
foto e fai bibblt picDest picSrc.
appena provata una cosa molto simile e va beatamente.
spieghe su bitblt ne trovi sull'apiguide e suppongo via msdn e google.
se invece vuoi le foto si sovrappongono e vuoi eliminare i margini
ridondanti, mi sa piu' complessa.
a naso, dovresti passarti almeno due foto per volta, e controllare quale
gruppo di linee verticali a sinistra nella seconda coincide con il primo
gruppo.
quindi biblittare la seconda a partire dall'ordinata della prima dopo la
quale le foto coincidono. se la sovrapposizione e' variabile, non mi sembra
semplicissimo.
scusa, ma data l'ora non mi sembra semplice nemmeno connettere. spero che tu
abbia capito :)
ciao, j.

 dovrebbe essere una fotografia a 360 gradi.
[CUT]
Attenzione:
affiancare foto scattate da un diverso angolo è una cosa
le foto cosi dette a 360° sono tutta un'altra
al di la della difficoltà realizzativa via software
--
Mauro Cerreto
www.cerretosoft.it
MSN-Yahoo mauro_6808

 
Ho gia fatto un lavoro del genere.
Tutto dipende dal sincronismo di scatto, ovv. se la tua macchina deve 
essere precisa nella rotazione (cosa facile con un motore step) tu sai 
ad esempio che la 1 foto copre da 0° a 90° la seconda da 91° a 180° e 
cosi via. Ti prepari, in questo caso, 4 image ctrl dove andrai a 
caricare le 4 foto semplice ... o no ;-)
Attenzione l'angolo di rotazione della macchina deve essere uguale 
all'angolo di copertura dell'obiettivo esempio sul formato 35 mm: monti 
un ottica standard che ha una copertura di 45° quindi 360/45=8 la tua 
macchina quindi dovrà fare 8 scatti per coprire tutto. Se invece monti 
un grandangolo che copre 60° la tua macchina dovra fare 6 scatti.
Penso di essere stato chiaro
ciao Max

 SendKeys.
puoi provare con xnview, free:
http://perso.wanadoo.fr/pierre.g/xnview/
ciao, j.

...

In effetti le immagini si debbono sovrapporre ed è illusorio pensare
che le (esempio) 12 immagini abbraccino TUTTE 30 gradi esatti, per cui
con qualche copia incolla bitblt si riesca ad ottenere qualcosa di
accettabile.
Ciao
Ugo

...

E se la macchina non abbraccia un angolo sottomultiplo di 360 gradi
che si fa ?
Logica conclusione: le immagini si debbono sovrapporre di un qualcosa
(variabile da foto a foto) e deve essere il software (quale ?) a
decidere come e quanto sovrapporre.
Ciao

 accettabile.
afaik, ci sono macchine che scattano ad angoli esatti.
o comunque, dovresti sapere qual e' l'angolo di rotazione, e quindi con
poche prove (o anche solo qualche calcolo) capire di quanto si sovrappongono
due foto contigue.
se la sovrapposizione e' indeterminabile, devi prendere p.e. le matrici
(ordinate) relative agli ultimi 50px orizzontali a destra nella prima foto e
confrontarli con le prime 50 della seconda foto. se combaciano, prenderne
altre 30 e 30, ecc.
a parte che non mi sembra immediato, dubito che vb sia il linguaggio adatto,
anche se e' senz'altro fattibile.
ciao, j.

altre 30 e 30, ecc.
Okkio, bisogna considerare anche l'asse verticale se la macchina non è
perfettamente in "bolla", e di solito non ci si riesce mai
perfettamente, quindi dopo l'assemblamento delle foto bisogna fare un
trim rettangolare.
Prova prima a fare delle prove con un sw di assemblamento tipo
PanoramaFactory ne esiste una versione free, così ti rendi conto
delle difficoltà.
Ciao
Sandrino
-----------------------------------------
http://www.geocities.com/abilato/

 
http://www.geocities.com/abilato/
eheheh, un altro vinofilo :)
--
ciao, j.
http://www.sundaysw.com/