Newsgroup: it.scienza.informatica
Titolo: ricerca dei contorni di un oggetto in movimento

Non so se questo è veramente il ng adatto, in caso contrario chiedo scusa.
Dunque, tramite video acquisiti da telecamera digitale devo riconoscere(con
un programma in c++) se ciò che si muove in una stanza è una persona. Per
fare questo devo trovarne i contorni e riconoscerne l'area, che dovrà essere
maggiore di una soglia. Il fatto è che usando algoritmi tipo sobel o canny,
mi risulta difficile trovare l'area perchè il contorno non è completamente
definito, nè tanto meno connesso. Qualcuno sa dirmi come potrei connettere
questo contorno, farne una label e calcolarne così i pixel all'interno?
Grazie e ciao.

 writes:
pentyum> Non so se questo è veramente il ng adatto,
pentyum> in caso contrario chiedo scusa.
Il newsgroup puo` essere anche giusto (se non fosse per chi ci scrive
senza sapere|pensare e tagliando impropriamente le frasi di altri
per darsi ragione (es. biscia))...
pentyum> Dunque, tramite video acquisiti da telecamera digitale devo
pentyum> riconoscere(con un programma in c++) se ciò che si muove in
pentyum> una stanza è una persona.
pentyum> Per fare questo devo trovarne i contorni e riconoscerne
pentyum> l'area, che dovrà essere maggiore di una soglia.
c'e` anche una prospettiva, la dinamica non e` molto chiara
pentyum> Il fatto è che usando algoritmi tipo sobel o canny, mi
pentyum> risulta difficile trovare l'area perchè il contorno non è
pentyum> completamente definito, nè tanto meno connesso.
in genere, quando hai un dettaglio troppo dettagliato
puoi sempre usare la media su un intorno.
pentyum> Qualcuno sa dirmi come potrei connettere questo contorno,
pentyum> farne una label e calcolarne così i pixel all'interno?
da come ti esprimi non direi che hai pensato molto alla soluzione,
anche lo scrittore Luciano Decrescenzo sapeva come calcolare l'area
di una figura in una immagine con un metodo piu` intelligente
pentyum> Grazie e ciao.
Non descrivi come e` lo sfondo, e soprattutto se e` statico.
Se e` statico come sembra di poter capire, infatti basta calcolare una
opportuna differenza probabilistica(*) tra le bitmap punto per punto con
l'immagine statica "vuota", la somma totale dui queste differenze
diviso il numero di pixel, vale approssimativamente lo spazio relativo
all'immagine occupato dalla figura estranea.
(*) L'opportuna differenza probabilistica dovrebbe essere una funzione
che vale 0 per differenze minime e vale 1 per differenze sensibili.
Se invece l'immagine di base non fosse statica, io ho ideato un algoritmo
che in parte realizzai anche efficientemente in C (e lo uso
privatamente nel mio GNU/Gimp 2.0 di cui sono anche coautore)
per determinare l'appartenenza dei punti ad un oggetto a partire da
un punto scelto. Ma non lo regalo.
Saluti,
MARco
-- 
 
http://mar.i.am/~u16482.18635/it.scienza.informatica,it
x(t),y(t) = th(3t-34.5)*e^[-(3t-34.5)^2]/2-4.3+e^(-1.8/t^2)/(.8*atg(t-
3)+2)(t-1.8)-.3th(5t-42.5),(1.4e^[-(3t-34.5)^2]+1-sgn[|t-8.5|-.5]*1.5*
|sin(pi*t)|^[2e^(-(t-11.5)^2)+.5+e^(-(.6t-3.3)^2)])/(.5+t)+1  ; 0<t<14

 Grazie e ciao.
Ciao

 un punto scelto. Ma non lo regalo.
Tranquillo, non mi servirebbe in questo caso. Grazie cmq per la risposta
Beh se qualcuno sa darmi qualche indicazione è ben accetto. Ciao

 per darsi ragione (es. biscia))...
piuttosto presuntuosetto. ma d'altronde lo si evince bene anche dalla prosa.

 ha scritto nel messaggio
news:KWk8c.97087$z23.4...@news3.tin.it...

forse puoi trarre qualche spunto da:
http://www.intel.com/research/mrl/research/opencv/overview.htm
le ho utilizzate con successo per risolvere un problema molto simile al tuo.

 writes:
....
    pentyum> Per fare questo devo trovarne i contorni e
    pentium> riconoscerne l'area, che dovrà essere maggiore di
    pentyum> una soglia.
       > > c'e` anche una prospettiva, la dinamica non e` molto chiara
pentyum> Come una prospettiva? Perchè?
Perche` piu` l'oggetto e` vicino alla telecamera, piu` grande
e` la sua figura nell'immagine. Partiva da te l'intenzione di
considerare una "soglia" di un'area.
pentyum> Io voglio riconoscere una persona che entra da una porta in
pentyum> una stanza semplicemente dicendo che c'è un sufficiente
pentyum> numero di pixel vicini e connessi che si muovono. A me pare
pentyum> più che sufficiente per dire se è una persona o meno.
pentyum> É una tesina perciò comunque non deve per forza funzionare
pentyum> nel 100% dei casi. A serviva un algoritmo per determinare il
pentyum> contorno di questo oggetto in movimento e calcolarne l'area.
Qualunque cosa sia, cercare le linee di contorno di una immagine
digitale solo per calcolarne l'area e` una via inutilmente molto complesa.
Visto che non hai recepito il riferimento a Luciano Decrescenzo,
sappi che c'e` un modo statistico di calcolare l'area, campionando la
pertinenza in uno spazio di punti casuale con frequenza spaziale
equamente distribuita.
Se e` una tesina divertiti sulla gestione del calcolo parallelo,
magari pesando con gaussiane circolari un sottoinsieme di punti
campionati
data "immagine" una matrice di punti acquisita dalla telecamera
tempo0=0
novis=0
while true {
  if epochtime()-tempo0>10minuti { //epoch di solito e` in secondi, quindi 600
       //(10 minuti se ci sono fineste che possono causare cambiamenti di luce)
     AND novis<soglia_vuoto //quando l'immagine e` statica vuota
    copia l'area di memoria di immagine -in-> background
    tempo0=epochtime();
  }
  int delta=0   //accertarsi che  MAXINT < (maxx+1)*(maxy+1)
  for x=0..maxx step samplex   //parallelizabile in un insieme delle parti
    for y=0..maxy step sampley
      if delta(immagine[x,y],background[x,y])>epsilon
        delta+=f(x,y)
  novis = delta/maxx/maxy
  if novis>soglia_pieno
    ALLARMI... tipo spedisici  immagine  con avviso
}
       > > da come ti esprimi non direi che hai pensato molto alla
       > > soluzione, anche lo scrittore Luciano Decrescenzo sapeva
       > > come calcolare l'area di una figura in una immagine con un
       > > metodo piu` intelligente
pentyum> A me viene in mente solo di farne il contorno e calcolare i
pentyum> pixel all'interno. Mi sembra la soluzione più diretta.
E la chiami diretta,
chiederla al newsgroup secondo te e` una soluzione diretta?
       > > Non descrivi come e` lo sfondo, e soprattutto se e`
       > > statico.
secondo paragrafo:
       > > Se e` statico come sembra di poter capire, infatti
       > > basta calcolare una opportuna differenza probabilistica(*)
       > > tra le bitmap punto per punto con l'immagine statica
       > > "vuota", la somma totale dui queste differenze diviso il
       > > numero di pixel, vale approssimativamente lo spazio
       > > relativo all'immagine occupato dalla figura estranea.
pentyum> Si si, è una stanza, quindi ho un background che posso
pentyum> devinire statico, eventuali oggetti che si muovono sarebbero
pentyum> comunque troppo piccoli e trascurabili.
Mi chiedo se hai letto anche il secondo paragrafo che aveva la soluzione,
non pretendo che tu la capissi, ma almeno l'ombra del dubbio di aver
ignorato doveva pura sfiorarti.
....
pentyum> Beh se qualcuno sa darmi qualche indicazione è ben
pentyum> accetto. Ciao
Mah
Saluti,
MARco
-- 
