Newsgroup: it.comp.lang.delphi
Titolo: [d5][d6] misurare in millimetri o pixel un segmento

ciao a tutti... dovendo sviluppare un software in cui ho 2 immagini 
affiancate (jpeg) acquisite sempre alla stessa risoluzione, dimensione, zoom 
(tramite una webcam ed un dermatoscopio collegato) avrei la necessità di 
tracciare una linea con il mouse e misurare la retta, secondo voi come posso 
trasformare la lunghezza della retta da pixel a millimetri??? come posso 
calcolare una cosa del genere?
Simone 

 calcolare una cosa del genere?
Dipende da quanto accurata è l'informazione che devi tirare fuori.
Il fatto è che la grandezza dei pixel e il "dot pitch", ovvero la distanza
tra pixel dipende strettamente dalla tecnologia utilizzata. Su molti
monitor, il dot pitch è di 0.28 millimetri, per esempio, quindi una misura
precisa non è possibile.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

la misura non dev'essere super precisa, diciamo che devo vedere la 
differenza dello stesso soggetto presente in entrambe le foto (sono dei nei 
della pelle) e verificare se è cresciuto... però non serve tanta precisione, 
solo che dev'essere in millimetri e non pixel!!! hai qualche formula da 
applicare in delphi?
Simo 

Simone P. ha scritto:

Io per un'applicazione simile alla tua (valutare delle lesioni di 
tessuti al microscopio) sono andato per via sperimentale, cioe' 
misuravo, calcolavo e riprovavo, alla fine ho ottenuto un fattore che ho 
inserito , programmabile.
In pratica, faccio una taratura, non so se riesco a spiegarmi. Metto 
sotto un oggetto dalla dimensione certa (in questo caso si parla di 
micron) lo visualizzo , poi dico all'operatore centrami con i cursori 
inizio e fine e poi dico : bene, questo tratto e' largo 70 micron e 
cosi' taro il sistema.
Ciao.Alberto.
-- 
===============================================================
Alberto Rubinelli - A2 SISTEMI 
news.bbip.it
 ThunderBird 1.5.0.9
Via Costantino Perazzi 22 - 28100 NOVARA - ITALY
Tel 0321 640149   Fax 0321 391769   BBS 0321 392320
Mail: 
alb...@oldcomputers.de
skype: albertorubinelli  ICQ : 49872318
Visita il mio museo di computers: 
http://www.oldcomputers.it
===============================================================


wrote:

Non è possibile applicare nessuna formula precisa, per i motivi
spiegati nel mio post precedente, ovvero il fatto che non c'è
uniformità nella grandezza dei pixel e distanza tra essi tra le varie
apparecchiature hardware. La strada migliore percorribile, a mio
avviso, è quella della taratura manuale che è stata proposta da
Alberto: parti da un campione certo e in base a quello tari tutto il
resto.

uniformità nella grandezza dei pixel e distanza tra essi ...
Il dot pitch non centra nulla, guarda solo il numero di pixel importato 
che dipende dal sistema di scansione. Basta contare quanti pixel ci sono 
tra un punto e l'altro e applicare la giusta formula di conversione.
Punto un pixel e trovo        X1,Y1
Punto un altro pixel e trovo  X2,Y2
Procedo in verticale (Y1-->Y2) e conto quanti pixel ci sono
Procedo in orizzontale (X1--X2) e conto quanti pixel ci sono
Calcolo i due cateti 
Cateto1 in mm =K*[Numero di pixel 1]
Cateto2 in mm =K*[Numero di pixel 2]
Applico PITAGORA ! K lo trovi con il metodo di Alberto
Essendo un'applicazione medica controlla bene quanto ti propongo, spero 
di non sbagliarmi.
Ciao
--- posted by geoForum on 
http://www.delphiedintorni.it

Il dot pitch non centra nulla, 
BASTA IMBECILLE! 
*plonk*

*plonk*
???  Come, cosa c'entra ???
Il dot pitch č una misura della grandezza della terna di punti di colore 
che compone un pixel, piů l'eventuale distanza tra terne adiacenti.
Un pixel č un pixel e il numero sullo schermo di essi non dipende dal 
dotpich.
Quindi basta contarli per calcolare una distanza, K la calcoli una sola 
volta empiricamente.
Non capisco perň perchč mi sono beccato dell'imbecille ? Cosa ho detto 
di sbagliato ? 
Ciao.


Questa mattina ho fatto delle prove,
Ho poi utilizzato l'evento:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Label1.Caption:=IntToStr(X)+'-'+IntToStr(Y);
end;
HO TOLTO LA TOOLBAR DI WINDOWS rendendola invisibile per essere proprio 
con una immagine a pieno schermo.
Bene, nella modalità 1024x768 i valori di Y agli estremi mi segnano 
1024, quelli di X 768.
Cioè X e Y contano i pixel sullo schermo ! 
A ogni X corrispondono un milione di pixel ? Non ricordo bene.
Quindi conoscendo X1,Y1 e X2,Y2 applicando pitagora trovo la distanza 
che stavo cercando.
LA COSA IMPORTANTE è quindi dire che il programma va utilizzato in 
modalità 1024x768 o trovare diverse costanti per ogni modalità e avere a 
disposizione l'evento on mouse move.
Se nel mio discorso c'è qualcosa di sbagliato vi prego di segnalarmelo.
Trattandosi di una applicazione medica ti prego di verificare la 
fondatezza delle mie affermazioni.
Ciao Matteo


Dimenticavo:
Se ripeto la prova nella modalità 800x600 X e Y misurano ancora una 
volta i pixel, assumendo agli estremi valori 800 e 600.
FORSE non serve nemmeno specificare la modalità grafica come ho detto 
sopra, in quanto l'immagine cambia dimensioni e i pixel compresi in una 
lunghezza sono sempre gli stessi.


grazie a tutti, non pensavo di fare un vero e proprio dibattito... visto che 
cmq mi hanno dato un certo RANGE di tolleranza, non dev'essere precisa al 
micron, mi basta sapere se la lunghezza della prima foto è uguale oppure 
superiore a quella della seconda...
ora mi sorge una domanda.... come faccio a tracciare linee rette su un 
TImage e sopratutto poterle gestire con eventi (in modo da eliminarle o 
spostarle??)
Simo 

spostarle??)
Guarda le proprietà e i metodi del TCanvas.

 e di quella particolare risoluzione video. [...]
Ho incontrato anche io questa tipologia di problema, cioè di dover 
rappresentare elementi a video (sempre con la libreria che cito in 
continuazione, la famosa *Graphics32*) che rappresentano oggetti 
esistenti nella realtà, ed ho agito esattamente come hai indicato.
La scelta che ho fatto è stata quella di stabilire una costante che 
rappresenti un rapporto di conversione pixel/mm, affinché la videata con 
rapporto di ingrandimento 1:1 corrispondesse ad una visuale 
sufficientemente ampia del sistema, ma non troppo da renderne invisibili 
le parti interessanti, insomma un buon compromesso.
Qualsiasi rappresentazione a video di valori reali, memorizzati 
all'interno di una classe, veniva ottenuta applicando il rapporto di 
conversione basato su tale costante, dimezzando il rapporto o 
aumentandolo per ingrandire o rimpicciolire gli elementi visualizzati.
Non esiste, in breve, da quanto ho potuto capire dalla mia esperienza, 
un rapporto assoluto tra millimetri e pixel, ad esempio. Va definito in 
base alle esigenze, oppure in base al dispositivo specifico con cui si 
ha a che fare.
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

risoluzione video. 
Cioè sta dicendo guarda la risoluzione se è 1024x768 o 800x600 del 
monitor che usi, dicendo implicitamente che il monitor non c'entra e 
getta ancora fumo per coprire la cazzata che ha detto.
Piantala di dare del TROLL a tutti, hai veramente scassato le palle !
Attieniti al comportamento civile di questo NG, il TROLL sei tu perchè 
sostieni a tutti i costi gli errori che fai !!!


Potresti fare un rapporto pixel/cm 
Fatti un esamino di coscienza e cerca di mettere a fuoco la parola 
*SERIETA'*


Non replicherò oltremodo a ulteriori vaneggiamenti sclerotici 
sull'esistenza di un TROLL che ti perseguita o penose arrampicate sui 
vetri per gettare fumo.
Chiunque abbia una mentalità scientifica può ben giudicare da quanto 
detto fino a qui !


 ha a che fare.
Esatto, è proprio quello che intendevo.


Andrea Laforgia submitted this idea :

Certo che tu Andrea abbocchi mica male, andare a pesca con te è un 
gioco da regazzi :)
Una volta per tutte lascialo perdere e vedrai, che come tutti i bambini 
dopo un po' si stuferà anche lui.

 Certo che tu Andrea abbocchi mica male[...]
Hai ragione.  Ho semplicemente aggiunto l'ennesimo nick al kill-file del
mio Agent, quindi non vedo e non leggo i suoi messaggi. Il fatto è che
quando c'è di mezzo la salute di altra gente, questo idiota dovrebbe fare
a meno di intervenire. Concordo: si stancherà ;-)


> *plonk*
Il dot pitch è una misura della grandezza della terna di punti di colore 
che compone un pixel, più l'eventuale distanza tra terne adiacenti.
Questa misura non intacca minimamente il numero di pixel presenti sullo 
schermo che dipendono dalla modalità Es. 1024x768
Delphi rileva i pixel e non il Dot pitch ! 
Quando viene campionata o fotografata una immagine, il numero di pixel 
che la compongono non varia, ma viene pittosto scritta in una qualsiasi 
memoria per essere utilizzata al momento giusto.
Ecco perchè non serve nemmeno indicare il tipo di risoluzione, infatti 
se sono in 1024x768 oppure in 800x600 le cose non cambiano perchè i 
pixel che compongono l'immagine sono comunque e sempre quelli.
K invece come l'abbiamo definita all'inizio è un valore significativo 
relativo al sistema di scansione che effettua un campionamento 
dell'immagine trasformando delle microzone in pixel. I pixel così 
campionati non cambieranno MAI !
Se Dlphi rilevasse il dot pich come dice Andrea Laforgia, probabilmente 
dovrebbe interfacciarsi in modo fisico per interrogare l'integrato 
LM1044 sull'uscita 15,16,17 o alternativamente se non ce la fa 
telefonare o mandare una mail al produttore del video stesso.
E quindi la cazzata detta è davero grande ! Mi domando quindi chi sia 
l'imbecille.


> *plonk*
Il dot pitch è una misura della grandezza della terna di punti di colore 








--- posted by geoForum on 
http://www.delphiedintorni.it

a meno di intervenire. Concordo: si stancherà ;-)
Anche per aver utilizzato il mio NIck l'idiota qui sei solo tu, ti 
consiglio di leggere la definizione di dot-pitch che ti è stata data.
Aggiungi pure i Kill File, alla fine rimarrai da solo. Ti chiedo come 
mai non vai a parlare su Delphi % Dintorni, probabilmente ti hanno 
mandato a quel paese troppe volte.
