SORU
29 AĞUSTOS 2009, CUMARTESİ


Renk gerçek renkleri karıştırma gibi işleri karıştırmak için bir algoritma var mı?

RGB renklerin ortak karıştırma resimler için renkleri karıştırma,çok farklıdır ışık yerine pigmentler karıştırma karıştırma.

Örneğin:

Blue (0,0,255)   Yellow (255,255,0) = Grey (128,128,128)

(Mavi ve Sarı = Yeşil olmalıdır)

Renk gerçek renkleri karıştırma gibi işleri karıştırmak için bilinen herhangi bir algoritma var mı?

Zaten aşağıdaki denedim:

HSV hem renkleri dönüştürmekve karıştırma tonları (doygunluk katsayısı hesaplanan çarpımı), ve basit doygunluk ve değer kanallar için ortalama. Hem ortalama parlaklık hesapladım o zaman (Rec. renkleri kullanma 709 katsayıları luma) ve sonuç bu parlaklık maç için renk ayarlanabilir. Bu oldukça iyi çalıştı, ama renk karıştırma bazen yanlış, e oldu. g.:

Red (Hue 0°)   Blue (Hue 240°) = Green (Hue 120°)

Bazen 360° renk değeri kaymaya ihtiyacım olduğunu anladım (zaman arasındaki fark 180° ' den büyüktür tonlar).

Red (Hue 360°)   Blue (Hue 240°) = Magenta/fuchsia (Hue 300°)

Ama değişen pek iyi değildi bu da, örneğin:

Cyan (Hue 179°)   Red (Hue 0°) = Hue 89.5°
Cyan (Hue 181°)   Red (Hue 0°) --> shifting is performed (difference is greater than 180°)
Cyan (Hue 181°)   Red (Hue 360°) = Hue 270.5°

(Ton 179 Kırmızı) ve (Ton 181) Kırmızı TAMAMEN farklı iki renk olur.

SonraCİE LAB renk uzayı çalıştımgerçekçi renkler olması gerekiyordu (Photoshop gibi), insan (ya da onun gibi bir şey). Karşılık gelen her iki kanal için sadece basit ortalama, ama sonuç tatmin edici değildi,ben kullanılan örneğin pembe (64, 26, -9.5) mavi (98, -16, 93) ve sarı (30, 68, -112) çıktım. Bu katsayıları Photoshop. alınmıştır Belki ortalamanın biraz farklı operasyon kullandım, ama işe yarayabilir Ne olduğunu bilmiyorum.

CMYK da işe yaramadısonuç sadece RGB ya da LAB.

Çalışan yazılım parçası vardır: http://commit-digest.org/issues/2007-08-12/ (Krita). Özel teknoloji pigmentler davranışını açıklayan ve kubelka-Munk denklemleri kullanarak uygulayan ilk ortak uygulaması olduğunu söylüyorlar.

CEVAP
29 AĞUSTOS 2009, CUMARTESİ


doğrucevap yok çünküdoğruçalışmamodel nasıl "renk gerçek dünyada karıştırma" gerçekten işe yarıyor. Oldukça karmaşık ve koşullu değil, gerçekten gibi basit Kırmızı-Mavi-Sarı şeyler öğrendik ki okulda (aslında gerekli Kimya ve bir sürü Fizik ve Biyoloji çözmek için).

Ancak, basit cevap: EVET, kullanıneksilticikarıştırma yerineKatkı maddesikarıştırma.

Öğrendiğimiz renk karıştırma dereceli okul eksiltici renk karıştırma (çok) basitçe bir form olan pigment kombinasyonları dayanmaktadır. Bu arada biz eklemek daha fazla renk, daha koyu her pigment biraz daha ışık çıkarır, çünkü bu olur.

Diğer yandan, hemen hemen tüm bilgisayar renk şemalarıkatkı maddesibu ışık dalgaları (çok basitçe) birleştirerek dayanır, her renk biraz daha ışık ekler için daha parlak bu yüzden.

RGB düzeni biraz, katkı maddesi BİZİ en çok ilköğretim okullarında öğrendiğimiz eksiltici düzenini tamamlayıcı RBY -) (. Ancak, tam olarak aynı olmayabilir ve aralarında dönüştürmek için zor (araştırma şimdi ...) olabilir

< / ^ hr .

Eğer sadece eksiltici olanlar için RGB katkı kombinasyonları geçmek istiyorsanız TAMAM, ters-bayesan aşağıdaki formülü yazın iki renk birleştirmek için kullanabilirsiniz:

NewColor.R = (Color1.R * Color2.R)/255
NewColor.G = (Color1.G * Color2.G)/255
NewColor.B = (Color1.B * Color2.B)/255

Renk Polonyalılar (Y, G geri G) fark için ayarlamak çok daha zor

< / ^ hr .

Oldu işaret bu üreten Siyah için örnek problem ve teknik olarak bu doğru bir gerçek çıkartıcı sistemi, ancak, eğer istediğiniz daha fazla sulandırma/eksiltici sistemi, şansını deneyebilirsin bunun yerine:

NewColor.R = 255 - SQRT(((255-Color1.R)^2   (255-Color2.R)^2)/2)
NewColor.G = 255 - SQRT(((255-Color1.G)^2   (255-Color2.G)^2)/2)
NewColor.B = 255 - SQRT(((255-Color1.B)^2   (255-Color2.B)^2)/2)

Siyah yerine koyu gri üretir. Ama Sarı falan yakın olsun, yine de renk düzeni var, direk uyum sorunu çözmemiz gerekiyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • John Lynn

    John Lynn

    8 Ocak 2010
  • mipd1980

    mipd1980

    25 EKİM 2006
  • superemposed

    superemposed

    25 Aralık 2007