wikiでの色指定等†
- シアン00FFFF
- マゼンタFF00FF
- イエローFFFF00
色補正プログラム†
プログラムの冒頭の以下の部分に、補正前の画像(hoseimae.ppm)に写っている
スケールから読み取ったシアン、マゼンタ、イエローのRGB値を書き込む
rc=10. !写真のスケールのシアンのR値
gc=240. !写真のスケールのシアンのG値
bc=230. !写真のスケールのシアンのB値
rm=240 !写真のスケールのマゼンタのR値
gm=20. !写真のスケールのマゼンタのG値
bm=230. !写真のスケールのマゼンタのB値
ry=240. !写真のスケールのイエローのR値
gy=230. !写真のスケールのイエローのG値
by=30. !写真のスケールのイエローのB値
コンパイルして
$./henkan
を実行すると、henkanm というファイルに\( 3\times 3 \)の変換マトリクスが書き込まれる。
gimp ファイル名
画像サイズを「画像」から「画像の拡大縮小」を選択 今は800
gimpで名前をつけてエクスポートでppm形式で出力
データフォーマット ASCII
$./rgb < hoseimae.ppm
を実行すると、補正後画像(hoseigo.ppm)が出力される。
gimp hoseigo.ppm
ファイルから名前をつけてエクスポートでjpgに
- 画像ファイルに写っているカラースケールのシアン、マゼンタ、イエローのRGB値をそれぞれ以下の記号で表す。
- シアン:\( R_{c},G_{c},B_{c} \)
- マゼンタ:\( R_{m},G_{m},B_{m} \)
- イエロー:\( R_{y},G_{y},B_{y} \)
- 補正後のシアン、マゼンタ、イエローのRGB値の基準値をそれぞれ以下の記号で表す。
- シアン:\( R_{c}^{基},G_{c}^{基},B_{c}^{基} \)
- マゼンタ:\( R_{m}^{基},G_{m}^{基},B_{m}^{基} \)
- イエロー:\( R_{y}^{基},G_{y}^{基},B_{y}^{基} \)
- 具体的には、例えば以下のように与える。
- シアン:\( R_{c}^{基}=0,G_{c}^{基}=255,B_{c}^{基}=255 \)
- マゼンタ:\( R_{m}^{基}=255,G_{m}^{基}=0,B_{m}^{基}=255 \)
- イエロー:\( R_{y}^{基}=255,G_{y}^{基}=255,B_{y}^{基}=0 \)
- 色補正の変換マトリクス\( h_{ij} \)は、以下のように定義される。
\[\left(\begin{array}{c} R_{c}^{基}\\ G_{c}^{基}\\ B_{c}^{基} \end{array} \right)= \left(\begin{array}{ccc} h_{11} & h_{12} & h_{13}\\ h_{21} & h_{22} & h_{23}\\ h_{31} & h_{32} & h_{33}\\ \end{array} \right) \left( \begin{array}{c} R_{c}\\ G_{c}\\ B_{c} \end{array} \right) \]
\[\left(\begin{array}{c} R_{m}^{基}\\ G_{m}^{基}\\ B_{m}^{基} \end{array} \right)= \left(\begin{array}{ccc} h_{11} & h_{12} & h_{13}\\ h_{21} & h_{22} & h_{23}\\ h_{31} & h_{32} & h_{33}\\ \end{array} \right) \left( \begin{array}{c} R_{m}\\ G_{m}\\ B_{m} \end{array} \right) \]
\[\left(\begin{array}{c} R_{y}^{基}\\ G_{y}^{基}\\ B_{y}^{基} \end{array} \right)= \left(\begin{array}{ccc} h_{11} & h_{12} & h_{13}\\ h_{21} & h_{22} & h_{23}\\ h_{31} & h_{32} & h_{33}\\ \end{array} \right) \left( \begin{array}{c} R_{y}\\ G_{y}\\ B_{y} \end{array} \right) \]
- \( h_{ij} \)を未知数として解けるように並べ替える。
\[\left(\begin{array}{c} R_{c}^{基}\\ G_{c}^{基}\\ B_{c}^{基}\\ R_{m}^{基}\\ G_{m}^{基}\\ B_{m}^{基}\\ R_{y}^{基}\\ G_{y}^{基}\\ B_{y}^{基} \end{array} \right)= \left(\begin{array}{ccccccccc} R_{c} & 0 & 0 & G_{c} & 0 & 0 & B_{c} & 0 & 0\\ 0 & R_{c} & 0 & 0 & G_{c} & 0 & 0 & B_{c} & 0\\ 0 & 0 & R_{c} & 0 & 0 & G_{c} & 0 & 0 & B_{c}\\ R_{m} & 0 & 0 & G_{m} & 0 & 0 & B_{m} & 0 & 0\\ 0 & R_{m} & 0 & 0 & G_{m} & 0 & 0 & B_{m} & 0\\ 0 & 0 & R_{m} & 0 & 0 & G_{m} & 0 & 0 & B_{m}\\ R_{y} & 0 & 0 & G_{y} & 0 & 0 & B_{y} & 0 & 0\\ 0 & R_{y} & 0 & 0 & G_{y} & 0 & 0 & B_{y} & 0\\ 0 & 0 & R_{y} & 0 & 0 & G_{y} & 0 & 0 & B_{y}\\ \end{array} \right) \left( \begin{array}{c} h_{11}\\ h_{21}\\ h_{31}\\ h_{11}\\ h_{22}\\ h_{32}\\ h_{13}\\ h_{23}\\ h_{33} \end{array} \right) \]
\( h_{11}, h_{12}, h_{13}, h_{21}, h_{22}, h_{23}, h_{31}, h_{32}, h_{33} \)の順に並べなかったのは、
対角成分が0にならないように。もっとも、上記の並べ方でもカラースケールのRGB値が基準値そのもので、
どれかが0になっていると、対角成分に0のところができて解けなくなるので、
カラースケールのRGB値が仮に0となっているところは、1とかにする。
耐候性鋼橋梁関係†