Newsgroup: it.comp.lang.visual-basic
Titolo: Immagini : Scansione e manipolazione in automatico

Ciao a tutti ... e da un pochino che vi leggo e vi ho sempre trovato
molto utili , ma questa volta ho un vero problemone e non so proprio
come risolverlo , ho cercato dappertutto ... ma nada !! Neanche su
html.it
 dove sono assiduo frequentatore mi hanno saputo dare un mano
Vi espongo il problema :
Devo acquisire una immagine da scanner ... OK 
se immagine è storta bisogna addrizzarla ... AIUTO
se immagine è capovolta bisogna Addrizzarla ... AIUTO
Insomma AIUTOOO !!

 se immagine è capovolta bisogna Addrizzarla ... AIUTO
Anche qui servono dei markers.
C'è qualche libreria OCR che se non riesce a leggere nulla rigira a
colpi di 90° la pagina finché non riesce a leggere qualcosa; è una
pratica barbara ma può dare un qualche risultato.
A parte la EzTwain, librerie di sviluppo che consentano il deskewing
ce n'è, e sono tutte alla portata di una american express gold (visa
prego astenersi ^_^ ).
Generalmente sono soluzione complete, quindi dalla lettura al
raddrizzamento, dall'ocr al full text retrieval.
Nomi a portata di mano non ne ho.
-> GbC|
www.gbcweb.com

 se immagine è capovolta bisogna Addrizzarla ... AIUTO
prima di metterti a scrivere qualcosa, leggiti qualche libro di intelligenza
artificiale, ne hai bisogno!!!
come puoi pretendere infatti che il tuo pc capisce da solo quando
un'immagine è storta oppure capovolta?
sono tutti concetti molto relativi, e peraltro strettamente associati ai
nostri concetti che abbiamo della concezione del mondo:
le montagne hanno la vetta verso il cielo
le persone (di solito) stanno in piedi o sedute
come fai a scrivere un algoritmo che decide da solo queste cose?
immagina la foto di una penna su una scrivania: potrebbe probabilmente
essere vista da qualsiasi angolo ed avere sempre un senso logico: quando va
interpretata come capovolta?????
il discorso dell'immagine *storta* invece è un po' più logico, come dice
GbC, perchè basta (come se fosse poco) capire quando il bordo dell'immagine
è inclinato e raddrizzarlo, ma non è cmq semplice......
bad coding!!!
-- 
Alletun
Sorry, ask me if you want to get my e-mail!

Grazie mille a tutti della disponibilitą !!! :D :D :D !!! Siete grandi !

 se immagine è storta bisogna addrizzarla ... AIUTO
Ho avuto lo stesso problema quando ho dovuto preparare
un atlante di carte aeronautiche (da usare con un programma
in VB) partendo dalle mappe cartacee digitalizzate.
Dopo la digitalizzazione le immagini non solo erano
"storte" (e' impossibile centrarle ESATTAMENTE sullo
scanner) ma dovevo anche correggere il fatto che si
presentassero come trapezi (convergenza dei meridiani).
Il metodo che ho usato per squadrare le carte e' il seguente
e lo puoi usare con qualsiasi immagine: sostituisci, nella
descrizione, X a longitudine e Y a latitudine.  Avrei potuto
riscrivere tutto il procedimento ma, essendo troppo pigro,
ti giro pari pari la Mail che a suo tempo mandai ad un amico.
Ciao e se poi avessi problemi :-)) conattami pure.
Franco
---------------------------------------------------------------
Prendiamo ad esempio il primo foglio che ho digitalizzato
delle carte BBQ: su di esso definisco un quadrilatero con
vertici A, B, C e D in cui A e' il vertice in basso a sinistra
e gli altri progressivi in senso antiorario.
Il vertice A ha coordinate di longitudine e latitudine pari
a 08.00.00 e 44.05.00; il vertice C (opposto) ha coordinate
di 09.00.00 e 45.00.00.
Con un programma qualsiasi (io me lo sono creato in VB ma va'
bene anche PaintBrush) leggo la posizione digitalizzata, in
pixels, dei quattro vertici che e', e.g.:
A: (55,853)
B: (685,871)
C: (705,72)
D: (85,53)
Ora mi creo il quadro finale che avra' l' altezza di 872 pixels
per grado di latitudine (alla scala di 1:500,000) e larghezza
di 872 pixels per grado di longitudine moltiplicato per il
coseno della latitudine media.
A questo punto per ogni pixel Px del quadro finale, di cui ricavo
dalla posizione in pixels le coordinate (Ltx, Lnx), procedo come
segue:
Trovo sul segmento AB la posizione Pab in pixels di Lnx.
Trovo sul segmento CD la posizione Pcd in pixels di Lnx.
Trovo sul segmento BC la posizione Pbc in pixels di Ltx.
Trovo sul segmento DA la posizione Pda in pixels di Ltx.
Calcolo il pixel corrispondente all' intersezione dei
segmenti passanti rispettivamente per (Pab, Pcd) e (Pbc, Pda)
e ne attribuisco il colore al pixel Px del quadro finale.
Il procedimento e' lento  ma funziona abbastanza bene anche
con immagini originali piuttosto sghembe.
------------------------------------------------------------------------