mieki256's diary



2016/10/21(金) [n年前の日記]

#3 [prog] GIMPの「着色」ってどんな処理をしてるのだろう

GIMPの、色 → 着色、ってどんな処理をしているのか気になって、GIMPのソースをDLして眺めていたり。しかし、分からん…。

以下のような処理をしてるのかなと想像するのだけど、どうなんだろう。
  1. 元画像のRGB値から輝度を算出。
  2. 着色ダイアログで指定された、色相、彩度、輝度、のうち、輝度を元画像から求めた輝度にも反映。
  3. HLS(色相、輝度、彩度)からRGBに変換。
_gimp/gimpoperationcolorize.c at master - GNOME/gimp を眺めた感じでは、そのように見えるのだけど。しかし、ググって見つけたこのソース(gimp 2.9と書いてある)と、DLしてきた GIMP 2.8.18 のソースでは、内容もファイル名も異なっていて。バージョンが違うから当たり前なんだろうけど。

RGBからグレースケールに変換。 :

RGBからグレースケールへの変換は、GIMPの場合は3種類の式があって。以下のページが分かりやすいような気がするのでメモ。

_Converting color to grayscale
_More on colors and grayscale
_明るさとコントラストの調整 < 色の調整 < 知っておきたい機能 | GIMP入門(2.8版)

もっとも、今回は輝度を求めたいのだから、0.21 * R + 0.72 * G + 0.07 * B の式でいいのだろうけど。

ただ、ググってみたら掛ける値は色々あるようで。

_osakana.factory - HSB 値と輝度の求め方 によると、0.298912 * R + 0.586611 * G + 0.114478 * B となっていた。また、 _画像のモノクロ化は輝度で変換しないとヒドイことになる - 知らなきゃ絶対損するPCマル秘ワザ では、0.299 * R + 0.587 * G + 0.114 * B となってた。掛ける値を足せば 1.0 になるのは同じだけど、それぞれ違う値だな…。

_YUV - Wikipedia によると、GIMPのソレは ITU-R BT.709 で、他は ITU-R BT.601、ということだったらしい。

_色空間の変換 (4) によると、
  • BT.709 : HDTV(ハイビジョンテレビ)の規格。Y = 0.2126 * R + 0.7152 * G + 0.0722 * B
  • BT.601 : SDTV(標準テレビ)の規格。Y = 0.299 * R + 0.587 * G + 0.114 * B
なのだとか。

_第36回:カラーマネジメント Rec.709は3種類ある? | PERCH長尾の知っ得!デザインビズ必読ポイント! | AREA JAPAN によると、BT.709 にもいくつか種類があるようで。

以上です。

過去ログ表示

Prev - 2016/10 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project