Non so contare pixel in un immagine

di il
22 risposte

22 Risposte - Pagina 2

  • Re: Non so contare pixel in un immagine

    FeeBled ha scritto:


    Il numero di pixel mi serve in integer
    La getpixel tratta UN pixel. Per contare devi avere un contatore (una variabile che parte da zero) e, all'interno di un ciclo in cui esegui la GetPixel per una serie di coordinate, aumenti il contatore SOLO SE trovi il colore che cerchi. Alla fine del ciclo avrai il tuo integer con il conteggio.


    P.S. Per favore, non scrivere una frase ad ogni risposta, altrimenti non si capisce nulla. Se devi aggiungere qualcosa, fallo modificando il post.
  • Re: Non so contare pixel in un immagine

    Ma come faccio ad implementare un conratatore nel ciclo perche a fine ciclo riesco solo ad ottenere la terza immagine a livello grafico. basta solo che aggiungo un integer tipo "a" e scrivo sotto set pixel a+1?
  • Re: Non so contare pixel in un immagine

    Un contatore è una variabile. Che devi implementare? Che domanda è?
  • Re: Non so contare pixel in un immagine

    E vero scusa ho corretto il messaggio, sto pensando a quanto sono stupido perche la soluzione e la piu semplice possibile
  • Re: Non so contare pixel in un immagine

    I suggerimenti li hai avuti .... Scrivi il codice e vediamo che errori fai ...
  • Re: Non so contare pixel in un immagine

    Inserire un contatore è una delle prime cose che si imparano quando si studia programmazione, comunque il codice che hai allegato non ha senso, l'if e l'else hanno la stessa conseguenza
    For x as integer = 0 to (bitmap1.weight + bitmap2.weight)-1
    For y as integer = 0 to (bitmap1.height + bitmap2.height)-1
    If bitmap1.getpixel(x,y).equals(bitmap2.getpixel(x,y)) then
    Bitmap3.setpixel(x,y,color) '<<<<<<<<<<<<<<<
    Else
    Bitmap3.setpixel(x,y, color) '<<<<<<<<<<<<<<<<<
    End if
    Next y
    Next x
  • Re: Non so contare pixel in un immagine

    Probabilmente non ha chiare le basi della programmazione. Si devono possedere prima di scrivere codice altrimenti non si riescono neanche a comprendere i suggerimenti e si finisce per chiedere la pappa pronta.
  • Re: Non so contare pixel in un immagine

    FeeBled ha scritto:


    Vi sto solo chiedendo come si fa a contare i pixel di un determinato colore in un immagine
    1 La quantità dei pixel in un immagine è ottenuta dall'area dell'immagine (lato per lato)
    2 Le dimensioni dei lati dell'immagine le ottieni interrogando il valore della larghezza e dell'altezza. ( .Width e .Height e non Weigth come ti è stato risposto prima nel pesudocodice)
    3 Per contare quanti colori ci sono e quanti pixel sono occupati da questi colori, devi crearti delle variabili che contano ogni nuovo valore del codice del colore che hai identificato ed assegnato ad una variabile con l'interrogazione di che colore è a queste coordinate, e conservare il risultato (esadecimale o RGB anche come stringa o "vettore" int di 3 valori) in una matrice (array) o un una struttura (struct) con almeno una variabile array e delle variabili di posizione e incrementare di 1 il valore per ogni pixel trovato con quel codice colore in tutte le coordinate.
    4 Per confrontare le 2 immagini confronti i dati ottenuti.

    Esempio:
    Prima immagine 5 x 5 pixel (R = Rosso G=Verde B=Blu W=Bianco N=Nero)
    WWWWW
    WGBRW
    GGGGG
    WRGBW
    WNNNW

    Seconda immagine
    WWWWW
    NNNNN
    WWWWW
    RRRRR
    WWWWW

    la larghezza la ottieni con Width che è uguale a 5 pixel, e l'altezza con Height che è 5 pixel.
    Nel ciclo di interrogazione che utilizzi con i 2 FOR di scorrimento, delle posizioni PosX, PosY, usa una variabile ColoreDiQuestoPixel in cui assegni il codice colore interrogato e controlli l'array dei nuovi colori che hai trovato, se (If) il colore è nuovo allora aggiungi all'array dei colori intercettati il nuovo codice colore e incrementi di 1 la variabile della quantità di pixel di colore, altrimenti (else) se il colore è già stato intercettato in precedenza allora incrementi di 1 la variabile delle quantità del pixel di quel colore di cui hai già conservato il codice colore nell'array o nella lista dell'insieme dei colori di quell'immagine.

    Quindi avrai un ArrayCodiciColoriImmagine_N1(), un ArrayCodiciColoriImmagine_N2()
    ArrayCodiciColoriImmagine_N1(0) = "#FFFFFF" 'Bianco in codice esadecimale che corrisponde al valore RGB(255,255,255) nota che FF vale 255
    ArrayCodiciColoriImmagine_N1(1) = "#00FF00" 'Verde in codice esadecimale che corrisponde al valore RGB(0,255,0) nota che FF vale 255
    ArrayCodiciColoriImmagine_N1(2) = "#0000FF" 'Blu ecc...
    ArrayCodiciColoriImmagine_N1(3) = "#FF0000" 'Rosso ecc..
    ArrayCodiciColoriImmagine_N1(4) = "#000000" ' Nero ecc..

    ArrayCodiciColoriImmagine_N2() diventa
    ArrayCodiciColoriImmagine_N2(0) = "#FFFFFF" 'Bianco in codice esadecimale che corrisponde al valore RGB(255,255,255) nota che FF vale 255
    ArrayCodiciColoriImmagine_N2(1) = "#000000" ' Nero ecc..
    ArrayCodiciColoriImmagine_N2(2) = "#FF0000" 'Rosso ecc..

    Per sapere quanti pixel Rossi ci sono nell'immagine 1 devi per esempio aggiornare l'array del conteggio di ogni colore
    QCOloriCodiceColore_1(0) = 11 ' Quantità pixel bianco nell'immagine 1
    QColoriCodiceColore_1(1) = 7 'Quantità pixel verde
    QColoriCodiceColore_1(2) = 2 ' Quantità pixel blu
    QColoriCodiceColore_1(3) = 3 ' Rosso
    QColoriCodiceColore_1(4) = 2 'Nero

    Per esempio trovi un pixel nero incrementi la variabile delle quantità dei pixel neri così quando trovi il pixel nero:
    QColoriCodiceColore_1(4) = QColoriCodiceColore_1(4) + 1

    Devi chiarirti il concetto di coordinate di posizione del pixel, PosX e PosY che possono essere valori compresi tra il valore minimo e il valore max dell'immagine cioè Width e Heigth. In quella coordinata PosX e PosY puoi interrogare e ottenere i colori.
    L'immagine 2 se ha largezza differente lo capisci dal fatto se Larghezza1 - Larghezza2 è diverso da 0, stesso discorso per l'altezza.
Devi accedere o registrarti per scrivere nel forum
22 risposte