Värien tilastointi

tilastoja

Minulla on ArrayListissä Color-objekteja. Onko jollakulla mitään ideaa siitäsaisin tilastoitua kunkin värin esiintyvyyden?

5

506

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • värikäs?

      Eli HashMap. Jos väri ei löydy, sijoitetaan siihen 1. Muutoin lisätään. Ei pitäisi olla monimutkaista.

      Suurilla kuvilla tämä voi viedä erittäin paljon muistia, ehkä noin 80 tavua jokaista erillaista väriä kohti. Color-luokka on vähintään 36 tavua, HashMap- entry 28 tavua ( tyhjät solut taulukossa, HashMap yrittää muistaakseni pitää 50% käyttöastetta), Integer-objekti 16 tavua. Tavumäärät voivat heittää hieman, en laskenut niin tarkkaan, mutta lähellä niiden pitäisi olla. 64-bittisellä JVM:llä luultavasti lähemmäksi 120 tavua, näin hatusta heitettynä.

      Jos värit ovat 8 8 8 bittisiä (sRGB yms. 24-bittiset) ja niitä on paljon, voi olla suorituskyvyn kannalta nopeampaa varata 2^24 taulukko int[256*256*"256] = 48 MB, jota indeksoidaan (red

      • tilastoja

        Juu, täytynee tutkia. Viitsisitkö heittää vielä vähän koodia tuosta HashMapista?


      • tilastoja
        tilastoja kirjoitti:

        Juu, täytynee tutkia. Viitsisitkö heittää vielä vähän koodia tuosta HashMapista?

        Jos HashMap sisältää objektin Color, lisätään avaimeen yksi, mutta miten?


      • tilastoja
        tilastoja kirjoitti:

        Jos HashMap sisältää objektin Color, lisätään avaimeen yksi, mutta miten?

        muuttujassa varit on väri-objektit. Miten saan lisättyä Integeriin yhden? Vai pitäisikö koko Integer korvata jollain muulla? Ongelma siis on seuraavan ehtolauseen jälkeen: if (y.containsKey(varit.get(x)) . Miten tästä jatketaan.

        HashMap y = new HashMap();
        for (int x=0;x


      • tilastoja
        tilastoja kirjoitti:

        muuttujassa varit on väri-objektit. Miten saan lisättyä Integeriin yhden? Vai pitäisikö koko Integer korvata jollain muulla? Ongelma siis on seuraavan ehtolauseen jälkeen: if (y.containsKey(varit.get(x)) . Miten tästä jatketaan.

        HashMap y = new HashMap();
        for (int x=0;x

        Oho, koodi katkesi kesken edellisessä viestissä. Tuli mieleeni, että jos arvon kasvattamiseksi yhdellä ei käy muutoin, kun luomalla joka kerta uusi Integer-objekti, on tämä selvää muistin haaskaamista. Pakko löytää tehokkaampi keino.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Veroaste on Suomessa viitisen prosenttiyksikköä liian matala

      Veropohjaa on rapautettu käytännössä koko kulunut vuosituhat, jonka vuoksi valtion menoja on jouduttu rahoittamaan velka
      Maailman menoa
      67
      2405
    2. Tiedän satavarmasti ettet tule koskaan

      Uskaltamaan mitään. Ei me tulla edes näkemään koskaan.
      Ikävä
      66
      1377
    3. Kyläkauppias ajoi kännissä töistä kotiin

      Ei edes kallis auto estä humalassa ajamista, vaikka luulisi alkolukko olevan sellaisessa jo vakiovarusteena. https://ww
      Maailman menoa
      74
      1185
    4. EU komissio - EU-elpymisrahoja voidaan käyttää TILAPÄISESTI väärin!

      Espanja ohjasi miljardeja euroja – Nyt EU-komissio teki yllättävän paljastuksen Skandaaliksi noussut Espanjan EU-rahoje
      Maailman menoa
      4
      1107
    5. Miks me oikein

      Rakastuttiin vaikka kaikki on mahdotonta?
      Ikävä
      79
      845
    6. Kiitos upeasta palvelusta kukkamyyjä

      Kiitos sinulle upea kaunis kukkamyyjä Kuhmon torilla 🌹 Upea iloinen asenteesi ja kaunis hymysi pelasti päiväni ❤️ Jäi
      Kuhmo
      19
      790
    7. Nainen, mikset lähetä

      miehelle viestiä? Tiedän, että sulla on asiaa ja kysyttävää.
      Ikävä
      43
      678
    8. Ratikka Turkuun

      Ei hyvä. Ja syy on siinä , kukaan ei osaa suunnitella oikeaa reittiä. Pitää huomioide, kiskoja sijaintia ei voi muutta
      Turku
      82
      670
    9. Miehet trikoissaan

      On se kauhian näkköistä, kun miehet tiukossa trikkoissa juoksentelloo ja mulukku paestaa trikkoijjen läpi. Kahtokkee pe
      Suomussalmi
      24
      638
    10. Rakastan sinua

      Yhä.
      Ikävä
      30
      636
    Aihe