演習4
演習のためディレクトリ ~/image/ex4 を作成し、その中でおこなうこと。
画像を(演習2)と同様にダウンロードし、~/image/ex4 に保存しなさい。(演習2とは別の画像にすること)
保存した画像を PPM 形式に変換しなさい。
ppmtorgb3 コマンドを用いて、RGB 成分に分解した3つの画像を作りなさい。
rgb3toppm コマンドを用いて、3つの画像からカラー画像を作りなさい。但し、 元の画像の G成分を新しい画像のR成分に、旧B成分を新G成分、旧R成分を新B成分に 当てはめることで、色が違った画像を作ること。
ppmtoyuvsplit コマンドを用いて YUV 成分に分解しなさい。ここでできる 3つのファイルは raw 形式なので rawtopgm コマンドで PGM 形式に変換して xv で表示してみなさい。
yuvsplittoppm コマンドを用いて U,V 成分を入れ替えたカラー画像を合成 しなさい。
どのようなコマンドでどんな画像ができたか分るように、演習の経過を レポートしなさい。レポートは ~/public_html/image/ex4.html に作成すること。 なお、画像は cjpeg コマンドを用いて JPEG形式にし、インライン表示すること。
演習のための netpbm コマンド解説(正確なところは man で確認すること)
ppmtorgb3 ... 引数のファイル名から .ppm を取り除いた名前に .red .grn .blu を付けた3つのファイルができる。
rgb3toppm ... 引数に並べた3つの PGMファイルを R,G,B 成分にした PPM 画像を作成する(標準出力に出るので、リダイレクトでファイルに収めること)
ppmtoyuvsplit ... 引数 basename が必須である。ゆえに
ppmtoyuvsplit tanuki tanuki.ppm
のようにコマンドを入れると、tanuki.Y tanuki.U tanuki.V の3つの ファイルができる。ls -l でサイズを確認すると Y ファイルは、PGMに 比べてヘッダが無い分だけ小さい。U, Vは 2x2 で平均するので、サイズは Yの1/4になっている。
rawtopgm ... raw つまり生のデータファイルにはヘッダ情報が無いので、 必要な情報をオプションで与えてやらなければならない。ここでは width height を与えてやればよい。
rawtopgm 240 160 tanuki.U > tanuki-u.pgm
yuvsplittoppm ... 引数 basename のほかに width height も必須である。 さらに、よく(英語を)読むと、ppmtoyuvsplit で作成した YUV については、 -ccir601 というオプションも必要であることがわかる。結果は標準出力に 出るので、リダイレクトでファイルに収める。