Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di mhmh
    Registrato dal
    Feb 2002
    Messaggi
    204

    PictureBox e Pixel dominanti

    ciao a tutti,
    il mio problema è questo: ho una picture box che carica un'immagine.
    Divido l'immagine in aree rettangolari e salvo le coordinate di ciascun rettangolo.Fin qui tutto bene.
    Ora dovrei fare questo: controllare per ogni singolo rettangolino quale è il colore dominante.
    Qualcosa del tipo: controllare ogni singolo pixel di ogni rettangolo e avere come risultato il numero massimo di pixel dello stesso colore.

    Non vi chiedo di scrivermi l'algoritmo, ma di proporre strade alternative, dato che questa non mi sembra la più performante nè la più comoda...

    Grazie in anticipo
    In Kebab We Trust

  2. #2
    Utente di HTML.it L'avatar di mhmh
    Registrato dal
    Feb 2002
    Messaggi
    204
    up!
    In Kebab We Trust

  3. #3
    guarda se ti piace

    ti serve un form una pictrebox e una lista

    codice:
    Private Type Colore
        Colore As Long
        ricorrenze As Long
    End Type
    
    Private Type BITMAP
        bmType As Long
        bmWidth As Long
        bmHeight As Long
        bmWidthBytes As Long
        bmPlanes As Integer
        bmBitsPixel As Integer
        bmBits As Long
    End Type
    Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
    Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
    Dim PicBits() As Byte, PicInfo As BITMAP
    Dim Cnt As Long, BytesPerLine As Long
    Private Sub Command1_Click()
    Dim Colour() As Colore
    Dim l As Long
    Dim bFind As Boolean
    
        GetObject Picture1.Image, Len(PicInfo), PicInfo
    
        BytesPerLine = (PicInfo.bmWidth * 3 + 3) And &HFFFFFFFC
        ReDim PicBits(1 To BytesPerLine * PicInfo.bmHeight * 3) As Byte
    
        GetBitmapBits Picture1.Image, UBound(PicBits), PicBits(1)
        ReDim Colour(0 To 0)
        For Cnt = 1 To UBound(PicBits)
            bFind = False
            For l = LBound(Colour) + 1 To UBound(Colour)
                If PicBits(Cnt) = Colour(l).Colore Then
                    bFind = True
                    Colour(l).ricorrenze = Colour(l).ricorrenze + 1
                    Exit For
                End If
            Next l
            If bFind = False Then
                ReDim Preserve Colour(0 To UBound(Colour) + 1)
                Colour(UBound(Colour)).Colore = PicBits(Cnt)
            End If
        Next Cnt
        For l = LBound(Colour) + 1 To UBound(Colour)
            List1.AddItem "H&" & Hex(Colour(l).Colore) & " - " & Colour(l).ricorrenze
            DoEvents
        Next l
        Picture1.Refresh
    End Sub
    
    Private Sub Form_Load()
        Set Picture1.Picture = LoadPicture("f:\sergio.jpg")
    End Sub
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  4. #4
    Utente di HTML.it L'avatar di mhmh
    Registrato dal
    Feb 2002
    Messaggi
    204
    con lista intendi la lista delle coordinate?
    se si, dov'è?
    In Kebab We Trust

  5. #5
    Originariamente inviato da mhmh
    con lista intendi la lista delle coordinate?
    se si, dov'è?
    una listbox
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.