Member baru? Bingung? Perlu bantuan? Silakan baca panduan singkat untuk ikut berdiskusi.

Welcome to Forum Sains Indonesia. Please login or sign up.

Agustus 13, 2022, 06:31:14 AM

Login with username, password and session length

Topik Baru

Artikel Sains

Anggota
Stats
  • Total Tulisan: 139,633
  • Total Topik: 10,390
  • Online today: 35
  • Online ever: 441
  • (Desember 17, 2011, 09:48:51 AM)
Pengguna Online
Users: 0
Guests: 30
Total: 30

Aku Cinta ForSa

ForSa on FB ForSa on Twitter

Kaitan Cahaya dengan Warna

Dimulai oleh Farabi, November 05, 2011, 08:10:27 AM

« sebelumnya - berikutnya »

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Farabi

Dalam Fisika, Telah didefinisikan, bahwa Gelap = 0 dan Terang = 1. Ini benar, kalau anda mempunyai sebuah prisma, dengan membelokan cahaya, maka cahaya tersebut akan memperlihatkan diversitas tunggalnya masing masing dengan komponen warna Merah, Hijau dan Biru. Bahkan, dalam televisi CRT, setiap fosfor sudah disusun sedemikian rupa, supaya mempunyai warna Merah, Hijau dan Biru.

Haruskan RGB? Tidak.



Dalam matematika dasar, jika R adalah 0,4 dan G adalah 0,3 dan B adalah 0,3 maka menambahkan R+G+B sama dengan 1. Berarti, warna putih bisa didapat dari pertambahan warna warna tersebut.
Sekarang, C=0,1 M=0,3 Y=0,3 K= 0,2. Jika C+M+Y+K sama dengan 1, apakah warnanya akan menjadi putih? Ternyata iya.

Permasalahan muncul saat anda ingin membuat sebuah detektor warna dengan menggunakan logika komputer pemrograman, yang menyatakan R=1 lebih gelap dari R=100, berlaku pula untuk G dan B. Padahal, dari tabel diatas, Jika anda terus menambahkan warna merah sampai nilai maksimum terang merah tercapai, bukan berarti warna merah kembali menjadi gelap, dan warnah kuning bertambah terang 1 atau lebih, melainkan menjadi sebuah warna lain.

Tulisan saya ini, ingin menyampaikan pesan, ada yang keliru dari logika matematika memory komputer, dengan ilmu fisika yang membuat bingung para programmer yang berkutat dalam pemrograman Augment Reality.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

mhyworld

Ada yang aneh dari tulisan anda yang pertama.
Dari komposisi RGB yang anda berikan, hasilnya warna merah muda, bukan putih. Warna putih, atau greyscale pada umumnya, diperoleh jika nilai R,G, dan B sama.
Kalau R=0.5, G=0.5, B=0, jumlahnya=1, tapi hasilnya bukan warna putih, melainkan kuning.
Begitu pula kalau yang 0 G-nya, hasilnya warna magenta. Kalau R-nya yang 0 jadi cyan.
once we have eternity, everything else can wait

Farabi

Itu cuma pemisalan. Dalam komputer itu R+G akan menjadi Yellow.

Jadi nilai aslinya adalah

1=R
2=G
4=B

Dimana angka 7 adalah putih. Sedangkan sistem yang anda pakai mungkin lain lagi. Karena dalam komputer modern biasanya 32 bit, jadi sistemnya RGBA.

Untuk greyscale bukan R, G,B sama tapi Rnya diambil 30% G nya 61% B nya 11%.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Ini pemodelan warna

[pranala luar disembunyikan, sila masuk atau daftar.]

Itu pemaknaan lain dari warna, istilahnya , "color space".

Dan link ini menjelaskan tentang Greyscale, karena kalau R dan G dan B sama warnanya putih.

[pranala luar disembunyikan, sila masuk atau daftar.]
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

#5
Kutip dari: mhyworld pada November 05, 2011, 02:16:02 PM
Ada yang aneh dari tulisan anda yang pertama.
Dari komposisi RGB yang anda berikan, hasilnya warna merah muda, bukan putih. Warna putih, atau greyscale pada umumnya, diperoleh jika nilai R,G, dan B sama.
Kalau R=0.5, G=0.5, B=0, jumlahnya=1, tapi hasilnya bukan warna putih, melainkan kuning.
Begitu pula kalau yang 0 G-nya, hasilnya warna magenta. Kalau R-nya yang 0 jadi cyan.

Anda salah paham. Coba anda pahami, kalau puthin misalkan adalah 7 dimana merah adalah 1 dan hijau adalah 2 dan Green adalah 4, maka berapakah kuning?

Dalam "Space" RGB, memang benar R=0,5 dan G=0,5 adalah kuning, dan R=1 dan G=1 adalah kuning terang iya kan?
Nah kalau anda rubah ke frequensi dengan tabel diatas jadinya bagaimana? Jadi anda harus memproyeksikan, antara "space" yang satu dengan "space" yang lain. Dari space RGB menjadi space linier yang didefinisikan oleh fisika, yaitu 0 adalah hitam dan 1 adalah putih. Jadi merah adalah 0,1 kan?



Coba di komputer anda, terus tambahkan nilai merah, jadinya gimana? Atau anda tulis R=1, G=1, B=1. Jadi warna putih kan? Tapi kalau ditambahkan hasilnya berapa? 3 iya kan? Padahal sudah didefiniskan kalau putih itu 1. Berarti harus di "mapping" kan? Gitulah kira kira.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

mhyworld

Kutip dari: Farabi pada November 05, 2011, 03:03:46 PM
Itu cuma pemisalan. Dalam komputer itu R+G akan menjadi Yellow.

Jadi nilai aslinya adalah

1=R
2=G
4=B

Dimana angka 7 adalah putih. Sedangkan sistem yang anda pakai mungkin lain lagi. Karena dalam komputer modern biasanya 32 bit, jadi sistemnya RGBA.

Untuk greyscale bukan R, G,B sama tapi Rnya diambil 30% G nya 61% B nya 11%.

Koreksi dikit. R=30%, G=59%, B=11%, jumlah totalnya 100%.
Kalau membuat pemisalan sebaiknya yang bisa menyederhanakan masalah, bukan yang menambah kebingungan.
Yang saya maksud RGB-nya sama itu representasi digitalnya, bukan aktual luminencenya.
once we have eternity, everything else can wait

Farabi

Saya bingung ngejelasinnya nih masalah ini. Jadi maksudnya, kalau misalkan saya tambahkan warna merah cerahnya 100 dan warna hijau merah 50, kira kira jadi warna apa nih? Kuning kan? Nah yang jadi pertanyaan, kuningnya ini tingkat kecerahannya berapa. Gitulah permasalahannya.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Kalau anda tanya mau digunakan untuk apa

[pranala luar disembunyikan, sila masuk atau daftar.]

Nah untuk mempercepat ini. Karena saya ingin membuat sebuah cara yang benar benar berbeda dari biasanya.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

mhyworld

Kayaknya di atas saya menggunakan istilah yang kurang pas (greyscale), sehingga jadinya membingungkan. Seharusnya saya memakai istilah warna netral, yaitu dari hitam, abu-abu tua, abu-abu muda hingga putih. Untuk warna netral itu, di antara ketiga warna RGB tidak ada yang lebih dominan dari yang lainnya, sehingga nilai R,G, dan B nilainya harus sama.

Faktor koreksi 30%R,59%G,11%B adalah untuk melakukan konversi dari gambar berwarna menjadi gambar greyscale(hitam-putih). Alasannya, mata manusia lebih sensitif terhadap warna hijau dibanding warna lain. Baru kemudian menyusul warna merah dan biru.
once we have eternity, everything else can wait

mhyworld

Dalam bahasa pemrograman, biasanya warna pixel diwakili dengan 24 bit (3 x 8byte)data. Least significant byte mewakili warna merah dengan intensitas relatif 0-255. Byte tengah mewakili warna hijau dengan intensitas relatif 0-255. Most significant byte mewakili warna biru dengan intensitas relatif 0-255.

Ada juga yang menambahkan byte keempat untuk mewakili opacity, terutama jika sudah menerapkan sistem multilayer. Object dengan nilai opacity 0 berarti full transparan, sehingga hanya menampilkan background/object lain pada layer di bawahnya. Nilai opacity 255 berarti full opaque, object tersebut menutupi background dan object lain pada layer di bawahnya. Untuk nilai opacity di antara 0 dan 255, warna yang ditampilkan adalah hasil percampuran warna object dengan warna background/object lain di bawahnya, dengan komposisi sesuai nilai opacity tersebut.
once we have eternity, everything else can wait

mhyworld

Contoh, sebuah bendera dalam gambar berwarna memiliki dua warna yaitu kuning dan magenta, keduanya dengan intensitas maksimum untuk space warna masing-masing. Untuk daerah warna kuning R=255,G=255,B=0. Untuk daerah warna magenta, R=255,G=0,B=255. Jika gambar bendera itu dikonversi menjadi gambar greyscale, object warna kuning diubah menjadi berwarna abu-abu muda dengan intensitas 30%*255+59%*255+11%*0=227. Sedangkan object warna magenta akan dikonversi menjadi abu-abu yang lebih gelap dengan intensitas 30%*255+59%*0+11%*255=105. Dalam gambar greyscale hasil konversi, bagian berwarna kuning tampak lebih terang daripada bagian berwarna magenta, meskipun keduanya memiliki intensitas maksimum untuk space warnanya masing-masng.
Kalau tidak pakai faktor koreksi, hasilnya =2/3*255=170 untuk bagian berwarna kuning maupun magenta, sehingga seolah-olah bendera itu cuma punya satu warna.
once we have eternity, everything else can wait

Farabi

Nah, sekarang kita anggap warna itu hanya ada 8 buah.
R-G-B

Warna
Merah = 1
Hijau = 2
Biru = 4

Warna Kuning berarti 3, benar? Karena ini gabungan dari Merah dan Hijau. Sekarang, kalau sebuah warna mempunyai intensitas R=200,G=200,B=100 terlihat sebagai kuning terang, sebenarnya, kalau kita hanya membagi warna sebagai 8 jenis GAMUT, warna yang saya maksud masuknya kemana?
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

mhyworld

Contoh yang anda berikan bisa dianggap sebagai proses pembulatan. Dalam hal ini masing-masing komponen warna primer yang sebelumnya direpresentasikan dengan 8 bit dikonversi menjadi 1 bit. Normalnya, threshold pembulatan ada di titik tengah, dalam hal ini 128. Jadi kalau nilainya kurang dari 128 dibulatkan menjadi 0, kalau lebih atau sama dengan 128 dibulatkan menjadi 1.

Pada contoh yang anda sebutkan, hasil konversinya akan menjadi warna nomor 3 (011 biner).

Namun anda bisa saja melakukan adjustment, misalnya kalau menginginkan visual efek tertentu, dengan mengubah nilai thresholdnya. 
once we have eternity, everything else can wait

Farabi

Ya, soalnya kalau anda perhatikan, warna warna itu tidak lain hanya perbedaan antara rasio antara R-G-B tidak lain cuma itu saja. Cyan tidak lain variasi lain dari terang warna kuning, Biru jeans, tidak lain hanya variasi lain dari terang biru, sedangkan jangan tertipu mengatakan biru langit adalah biru, karena biru langit berasal dari komponen G-B bernilai keduanya 1, sama halnya mengatakan Pink adalah Merah, ini salah, karena komponennya beda.

Ide bagus, jadi dibawah 128, akan kita anggap 0 ya.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.