|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 168
|
Matlab - Image processing
ciao a tutti,
ragazzi, sapete dove posso trovare della documentazione sugli algoritmi per la segmetazione delle immagini?? ![]() grazie...... |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 168
|
piccolo up...
![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 168
|
ultimo piccolo up
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12093
|
ehm..no..
ma cmq ke intendi per segmentazione delle immagini??? ![]() spezzare un immagine in piu' parti x caso? ![]()
__________________
![]() |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 168
|
si, esatto...
tecniche tipo region growing e lo split.... ![]() |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Aug 2003
Messaggi: 125
|
Visto che non ti risponde nessuno, ci provo io... =)
Sinceramente non credo di poterti essere di grande aiuto sulla segmentazione 2D, ma non si puo' mai sapere. Io ho tonnellate di papers dispersi sull'HD sulla segmentazione, ma riguardano quasi esclusivamente la segmentazione di mesh o immagini range (quindi si sta nel 3D). Forse ho ancora qualcosa di generico, quindi applicabile anche alle immagini 2D, pero' e' tutta roba abbastanza teorica, niente (pseudo)codice per intenderci, tantomeno in matlab =) Potresti comunque ricavarne qualcosa, ma alla fin fine dipende da cosa ci devi fare, se e' un programmino "scemo" (in senso lato, chiaro =)) per un progetto, probabilmente rischio solo di sommergerti con pdf inutili che ti "allontanano" dall'obiettivo... Comunque, hai fatto qualche ricerca generica? Online dovresti trovare materiale in abbondanza sulle tecniche classiche di segmentazione 2D... =) Ultima modifica di Bane : 10-02-2006 alle 23:28. |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 168
|
Grazie per l'aiuto...
dovrebbe essere una funzione matlab per permettere di applicare il region growing sul delle immagini.... ![]() |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Aug 2003
Messaggi: 125
|
Ok, a te serve proprio il codice matlab gia' scritto?
Nel qual caso temo di non poterti aiutare... Altrimenti provo a vedere se ho un po' di speudo-codice da qualche parte. Comunque, concettualmente il region growing e' un algoritmo piuttosto semplice, non dovresti avere grossi problemi nell'implementare qualche variante... |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1726
|
mi spiegate in breve che sono segmentazione e region growing?
grazie
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino. |
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Aug 2003
Messaggi: 125
|
La segmentazione consiste nel suddividere l'insieme di dati in ingresso (immagine 2D, mesh 3D, nuvola di punti 3D, immagine range, ecc.) in regioni significative (ogni regione, ad esempio, potrebbe rappresentare un oggetto o una parte di esso). Le informazioni cosi' ricavate possono essere utilizzate per vari scopi, come riconoscimento, matching di immagini range, ricostruzione di superfici... varia quindi dalla tipologia dei dati in ingresso e da cio' che si vuole ottenere.
Il region growing e', appunto, un algoritmo di segmentazione che prevede di scegliere un certo numero di dati isolati, definiti seed, da utilizzare come regioni di partenza per il successivo processo di accrescimento. Iterativamente, i dati adiacenti ad ogni regione vengono quindi analizzati e, se soddisfano alcuni requisiti di omogeneita', vengono aggregati a quella regione. Quando tutte le regioni raggiungono la massima dimensione possibile, si procede alla fusione di quelle adiacenti aventi caratteristiche simili. Il risultato finale e' sensibile a due fattori principali: la scelta dei seed, che devono essere in grado di rappresentare in modo valido le regioni, e la scelta del criterio di aggregazione, che dipende fortemente dalla tipologia dei dati in ingresso. Un metodo per migliorare questa tecnica di segmentazione prevede di sfruttare nozioni aggiuntive, ricavabili ad esempio dagli algoritmi per la ricerca degli edge. Boh, credo possa bastare... =) Ultima modifica di Bane : 14-02-2006 alle 11:58. |
![]() |
![]() |
![]() |
#11 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Soprattutto per Matlab, utilizzando l'Image Processing Toolbox, io ti consiglio un libro che ho studiato negli ultimi mesi e che ho trovato ottimo e cioè: "Digital Image Processing Using Matlab" di Gonzalez, Woods e Eddins. L'editore è Pearson/Prentice Hall International. Se sei interessato a questi argomenti è una tappa quasi obbligata. Io l'ho trovato particolarmente utile per il suo taglio applicativo, soprattutto perchè grazie a questo testo ho finalmente compreso la trasformata di Hough per realizzare un algoritmo di peak detection ![]() Il libro è questo: ![]() Questa è una materia da veri uomini, soprattutto perchè da valore alle nozioni di analisi matematica, algebra e geometria che si sono apprese tanto faticosamente ![]() E' un po costoso (io l'ho pagato 120€ ai tempi, non so se ora sia sceso, ma li vale tutti). Ultima modifica di mjordan : 14-02-2006 alle 18:55. |
|
![]() |
![]() |
![]() |
#12 |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Dimenticavo, puoi trovare molti esempi utili in Matlab, sul sito del libro:
http://www.imageprocessingplace.com/ C'è molta roba. Ciao ![]() |
![]() |
![]() |
![]() |
#13 |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Ho visto ora che ti serve una routine di region growing...
Questo è quello che ho scritto tempo fa: Codice:
function [g, NR, SI, TI] = regiongrow(f, S, T) f = double(f); % Se S e' uno scalare, ottieni il "seme" dell'immagine. if numel(S) == 1 SI = f == S; S1 = S; else SI = bwmorph(S, 'shrink', Inf); J = find(SI); S1 = f(J); % Questo e' l'array dei semi. end TI = false(size(f)); for K = 1:length(S1) seedvalue = S1(K); S = abs(f - seedvalue) <= T; TI = TI | S; end % Assegnamo un intero diverso ad ogni regione connessa. [g, NR] = bwlabel(imreconstruct(SI, TI)); Ciao ![]() |
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 168
|
Grazie dell'aiuto, ma dopo essermi scervellato un pò l'ho fatto da solo...
![]() ![]() Grazie comunque a tutti.... |
![]() |
![]() |
![]() |
#15 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:17.