Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: RGB värit

Sivun loppuun

Milu [28.03.2011 02:28:59]

#

Jos GetPixe:llä hakee näytöstä pikselin värin ja muuttaa sen hexsaluvuksi ja pilkkoo siitä nuo sinisen,vihreän ja punaisen väriarvot desimaaleiksi.

Onko noihin RGB sininen, vihree ja punainen värisävyihin mitään säännönmukaisuutta jos etsitään jotain tiettyä väriä.

Eli mitä ne värisävyjen sinisen, vihreen ja punanen RGB 0-255 rajaarvot olisivat, että "värisävy" olisi vielä keltaine.

Tietysti vihreätä ja punaista pitäisi olla enemmän kuin sinistä ja vihreän ja punaisen keskinäinen ero ei saisi olla liian suuri.

Siis pitäisi saada hyväksymään vain tietyn keltaisuuden rajarvot ylittävät keltaisen varisävyt.

Onko ehdotuksia toteutuksen?

The Alchemist [28.03.2011 11:28:10]

#

Ei taida perinteinen RGB-esitys olla pätevä eri värisävyjen erottelemiseen. Perehdy vaikka HSV:hen ja HSL:ään.

neau33 [28.03.2011 13:31:32]

#

Moi Milu!

tällä voit tutkia RGB -arvoja...

Private Sub Command1_Click()

   CommonDialog1.ShowColor
   '(säätele mukautettuja värejä)

   Dim picbox As PictureBox

   'iske Framen sisälle 2 radionappia
   Select Case Option1.Value
      Case True
        Set picbox = Picture1
      Case False
        Set picbox = Picture2
   End Select

   picbox.BackColor = CommonDialog1.color

   Set picbox = Nothing

End Sub

Private Sub Picture1_Click()

   RGBColors Picture1, Picture1.BackColor

End Sub

Private Sub Picture2_Click()

   RGBColors Picture2, Picture2.BackColor

End Sub

Sub RGBColors(box As PictureBox, color As Variant)

   Dim hStr As String, sB As String, sG As String

   hStr = "000000" & Hex(color)
   hStr = Right(hStr, 6)
   sB = "&H" & Mid(hStr, 1, 2): b = CInt(Format(sB))
   sG = "&H" & Mid(hStr, 3, 2): g = CInt(Format(sG))
   sR = "&H" & Mid(hStr, 5, 2): r = CInt(Format(sR))

   MsgBox "Sininen: " & sB & " - " & b & _
   vbCrLf & "Vihreä: " & sG & " - " & g & _
   vbCrLf & "Punainen: " & sR & " - " & r

End Sub

Milu [28.03.2011 19:22:50]

#

Kiitti,Nea

En tiedä millä logikalla se toinen ohjelma niitä keltaisen värisävyjä muuttellee, mutta idea siinä on että sen toisen ohjelman teksti ikkunan taustan väri muuttuu sitä "puhtaamman" keltaiseksi mitä lähempänä se on sillä hetkellä sitä ikkunaa.

Mutta pikaisella vilkasulla kaapatuista väriarvoista, määritelemällä vihreän ja punaisen suhde toisiinsaa ja sinisen värin ero vihreään ja punaiseen onnistuu varmaan jonkillainen riittävä kaava, jolla liian tummankeltaiset värisävyt hylätään ja mitkä hyväksytään riittävän puhtaan keltaiseksi.

Toisesta ohjelmasta GetPixe:llä haettuja väriarvoja, löytyykö noista mitää logikkaa millä se niitä keltaisen sävyjä muuttaa?

4704693
3593926
1568487
1372394
914929
849651
2613718
261628
588279
3071182
914930
2613975
4966065
1829859
3790020
392186
3332554
2875090
3986112
784371
5096878
1045743
3659205
2417881
2156510
2483160
3397833
1307115
4378042

Metabolix [28.03.2011 19:29:52]

#

Mitä jos vaikka opettelisit erottamaan noista luvuista värin komponentit (kuten neau33:n koodissakin tapahtuu), niin saisit väreistä jotain tolkkua?

Itse ongelmaan voit kokeilla ratkaisuksi vaikka kaavaa r+g-2b.

Milu [28.03.2011 20:11:07]

#

"pikselin värin ja muuttaa sen hexsaluvuksi ja pilkkoo siitä nuo sinisen,vihreän ja punaisen väriarvot desimaaleiksi"

Eikös se jo tossa tehdä ;)

Metabolix [28.03.2011 20:14:22]

#

No miksi sitten laitoit viestiisi vain kasan epämääräisiä 10-järjestelmän lukuja? Jos laittaisit suoraan erotellut RGB-arvot (mielellään vielä sen etäisyyden mukaan järjestyksessä), niitä jaksaisi ehkä useampi katsoa. Nyt pitäisi jokaisen auttajankin itse muuntaa tieto järkevämpään muotoon.

Milu [28.03.2011 20:29:38]

#

DES           HEX            DES / SI      DES / VI      DES / PU
4704693       47C9B5         71            201           181
3593926       36D6C6         54            214           198
1568487       17EEE7         23            238           231
1372394       14F0EA         20            240           234
914929        DF5F1          13            245           241
849651        CF6F3          12            246           243
2613718       27E1D6         39            225           214
261628        3FDFC          3             253           252
588279        8F9F7          8             249           247
3071182       2EDCCE         46            220           206
914930        DF5F2          13            245           242
2613975       27E2D7         39            226           215
4966065       4BC6B1         75            198           177
1829859       1BEBE3         27            235           227
3790020       39D4C4         57            212           196
392186        5FBFA          5             251           250
3332554       32D9CA         50            217           202
2875090       2BDED2         43            222           210
3986112       3CD2C0         60            210           192
784371        BF7F3          11            247           243
5096878       4DC5AE         77            197           174
1045743       FF4EF          15            244           239
3659205       37D5C5         55            213           197
2417881       24E4D9         36            228           217
2156510       20E7DE         32            231           222
2483160       25E3D8         37            227           216
3397833       33D8C9         51            216           201
1307115       13F1EB         19            241           235
4378042       42CDBA         66            205           186
1633765       18EDE5         24            237           229
2875090       2BDED2         43            222           210
457464        6FAF8          6             250           248
2156509       20E7DD         32            231           221
5750180       57BDA4         87            189           164
3071183       2EDCCF         46            220           207
784371        BF7F3          11            247           243
2875090       2BDED2         43            222           210
980208        EF4F0          14            244           240
2156509       20E7DD         32            231           221
3005904       2DDDD0         45            221           208
196093        2FDFD          2             253           253
1372394       14F0EA         20            240           234

Heh... välilyönnit puuttuu

Mod. lisäsi kooditagit.

Milu [28.03.2011 22:18:51]

#

Kiitoksia Metabolix, tolla (r+g-2b) kaavalla pääsee riittävään tarkkuuteen tässä kyseisessä tapauksessa, kun laittaa sillei et hyväksyy kaikki yli 300 arvot, jota kaavasta tulee.
Koska siinä ruudussa ei esiinny muita kuin noita keltaisen eri värisävyjä.

Milu [28.03.2011 23:25:20]

#

"(mielellään vielä sen etäisyyden mukaan järjestyksessä)" Sitä etäisyyden suhdetta siihen värisävyn muurokseen ei toisesta ohjelmasta voi oikein millään tarkistaa, mutta silmämääräisesti katsottuna se on aina sitä kirkkaamman keltaisempi mitä lähempänä se on sitä ruutua.
Noissa edellä esitetyissä kaapatuissa arvoissa se on käynnyt välillä lähempänä ja välillä kauenpana.

Kyse on moottorin kierroksista, jotka lainehtivat esim. 3000rpm kahta puolin ja tarkkaa moottorin kierrosarvoa kyseiselle keltaisen värisävylle on vaikea toisesta ohjelmasta selvittää.

Eli jos on esim. 2000, 2500,3000,3500 rpm jne... nyt kun moottorin kierrokset muuttuu 2500rpm:stä 3000rpm:ään se 3000rpm:n ruutu muuttuu sitä kirkkaaman keltaiseksi mitä lähemäksi se oikea mottorin kierros sitä 3000rpm:n ruutua tulee.

ja tuohon tarvitsisi sen raja arvon värisävystä, jolla hyväksyisi sen värisävyn perusteella moottorinkierrosten olevan riittävän "lähellä" kyseista ruutua ja voisi kaapata sen ruudun arvon omaan ohjelmaan käsiteltäväksi.

Kyseinen kuva ei liity aiheeseen, mutta siinä idea on sama.

http://onroad.juvander.fi/Community/blogs/ilpo/image_062AF325.png

Grez [28.03.2011 23:50:21]

#

Itselle tulisi mieleen ihan vaan puhtaasti katsoa punaista osaväriä tuosta.

Laittamassasi (alkuperäisessä) listassa pienin on 174 ja suurin 252. Siitä vaan skaalaa.

Tuossa vielä laittamasi (alkuperäisen listan) värit punaisen mukaan järjestettyinä:
http://grez.info/putka/Milu.PNG

Milu [29.03.2011 00:49:00]

#

Jollain kyseisen ohjelman tekijä on määritellyt sen asian, millä kaavalla sitä värisävyä muutetaan sen ns."tarkkuuden" mukaan.
Se kaava kiinnostaisi tietää mikä se on ja mulle se ei ainakaan tosta pienestä kaapatusta pätkästä selviä.

Mutta Grez mielenkiintoinen huomio toi pelkkä punaisen osavärin tutkiminen, jos sitä oikeata kaavaa ei saa selville.

Jos sen oikean kaavan saisi selville millä se värisävy muuttuu moottorin kierrosten mukaan, silloin pystyisi tarkasti määritellä kyseisen värisävyn perusteella moottorinkierrokset ja rajaaminen olisi tarkempaa.

Grez [29.03.2011 00:54:22]

#

Siis pitäisikö tuosta muka löytyä useampia kuin yksi "ulottuvuus", eli kertooko tuo jotain muuta kuin sen "tarkkuuden". Mitä suurempi punaisen arvo, sitä suurempi tarkkus, vai oliko siellä jotain muutakin?

Jos nyt jotain muuta haetaan, niin antamiesi lähtötietojen perusteella on ihan mahdotonta keksiä minkäänlaista kaavaa. Ainoat käyttökelpoiset lähtötiedot on nuo värit ja päätellen siitä että ne on ihan vaan väriliuku, niin väittäisin että se on ns. 1-ulotteinen.

Milu [29.03.2011 01:05:07]

#

Se on 2d taulukko ja se voi olla pysty tai vaaka-akselilla se väri muutos.
Sitä en tiedä onko tuossa pienessä kaapatussa pätkässä tapahtunut vaaka-akselilla "huojuntaa" eli siinä vaaka-akseli kuvaa kaasun asentoa.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta