|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2009
Messaggi: 1926
|
matrice e ricerca valore con maggior numero di punti
mi servirebbe in c#(ma non è importante, mi basta uno pseudo codice) il seguente algoritmo..
data una matrice (una immagine in pratica) devo calcolare il colore dominante, ossia che si presenta più spesso.. considerando che ogni punto della matrice(pixel dell'immagine) è formato da 3 valori(rgb) mi serve sapere appunto qual è la terna che si presenta maggiormente.. l'importante che non sia troppo lento grazie
__________________
Come installare la rom cucinata V11-7 fixed di Hyperx: http://www.hwupgrade.it/forum/showpo...ostcount=21774 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Cosenza
Messaggi: 2971
|
un algoritmo semplice e non troppo costoso potrebbe essere questo:
crei una stringa che rappresenterà la soluzione, ovvero il colore dominante. chiamiamola coloreDominante crei una hashmap (chiave stringa, valore intero), la chiave sarà la stringa che rappresenta il colore e il valore sarà il numero di occorrenze di questo. aggiungi all'hashmap una entry con chiave coloreDominante e valore 0. cicli la matrice per ogni cella i,j, ottieni il numero di occorrenze (count) del colore relativo, se non esiste lo inizializzi a 0; incrementi di 1 count e aggiorni l'hashmap; se count è maggiore del valore massimo attuale, ovvero quello corrispondente alla chiave coloreDominante, aggiorni coloreDominante al colore attuale alla fine del ciclo avrai il colore dominante e il suo numero di occorrenze. costo O(nm), n righe, m colonne. codice esempio: Codice PHP:
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2009
Messaggi: 1926
|
grazie della risposta..in c# sarebbe hashtable?
dai un'occhiata qui please http://www.sviluppo-software.info/20...able-in-c.html i metodi che mi hai scritto, gli equivalmenti sono Add(per put), ma non ho capito l'equivalente del get (credo che sia direttamente hash[chiave] ) grazie ultima cosa, ovviamente la chiave è univoca, quindi se aggiungo una nuova entry con una chiave e il num di occorrenze incrementato, quella di prima non ci sarà più?
__________________
Come installare la rom cucinata V11-7 fixed di Hyperx: http://www.hwupgrade.it/forum/showpo...ostcount=21774 Ultima modifica di omniaforever : 19-05-2010 alle 01:28. |
|
|
|
|
|
#4 | |||
|
Senior Member
Iscritto dal: Sep 2004
Città: Cosenza
Messaggi: 2971
|
Quote:
inoltre ti basta cercare su qualche guida come usare le hashmap in c# per capire come usare la funzione di getter, è una cosa estremamente basilare. Quote:
javadoc del metodo put: Quote:
per esempio in alcuni linguaggi fare questa operazione alla lettera potrebbe addirittura causare un errore, ma sarebbe banale da risolvere, basterebbe eliminare la entry e poi rimettere quella aggiornata. |
|||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:35.




















