画像で遊ぼう!

コンピュータで扱える画像ファイルには, JPEG, GIF, PNG, PostScript, bmp など様々な形式のものがあります. ここでは, テキストファイルで画像を表現することのできる PNM 形式(PBM, PGM, PPM の総称)を使うことにします.

ファイルの例は これ です. ブラウザ上で左クリックで保存し, グラフィックスソフト(計算機実習室の Windows なら スタートメニュー=>プログラム=>グラフィックスソフト=>疾風/Tokikaze, Linux なら xv), および, テキストエディタ(計算機実習室の Windows なら スタートメニュー=>プログラム=>アクセサリ=>メモ帳, Linux なら viemacs )で開いてみましょう.

これを加工する C プログラムの例を下に示します. これをプロジェクトimagemanip1に保存して, ビルドして得られるプログラムを imagemanip1.exe としましょう. main の型や返り値は修正が必要ですが, 末尾に無限ループを置く必要はありません.

実行方法

通常の(デバッガ, 開発環境の中からの)実行方法

入力画像ファイル(たとえばグレースケールならin.pgm , 出力画像 out.pgm を指定する必要があるので, プロジェクト > プロパティ > デバッグ のコマンド引数を,

< Q:\kisosem\in.pgm > Q:\kisosem\out.pgm
としてから, 実行します. ここで, in.pgm,out.pgm は異なるファイル名にしておく必要があります. また, カラー画像ファイルの場合には 拡張子が .ppm, 2値白黒画像ファイルの場合は, 拡張子が .pbm となります.

入力画像ファイルなしに自分でゼロから生成する場合には, 出力画像ファイルだけを指定すればいいわけで,

> Q:\kisosem\seal2.pgm
です.

コマンドプロンプトからの実行方法

授業中には使いませんが, 開発が終了し, Visual Studio. NET 2003 の外で, 画像ファイルを次々に処理したいときは次のようにします.

まず, 実行ファイルを, VSN2003からの実行ファイルソースファイルの持出にしたがってQ:\に移動しておきましょう.

コマンドプロンプトを起動します.

Q:\>md kisosem フォルダを作る. 1度だけやればいい.
Q:\>cd kisosem
ここで, imagemanip1.exe を Q:\kisosem に移動
ここで, seal.pgm も を Q:\kisosem に移動
Q:\kisosem>type seal.pgm と試してみましょう
Q:\kisosem>type seal.pgm | imagemanip1 と試してみましょう
Q:\kisosem>type seal.pgm | imagemanip1 > seal2.pgm または同じことだけど
Q:\kisosem>imagemanip1 < seal.pgm  > seal2.pgm 

いずれかの実行方法で seal2.pgmが得られたら, グラフィックスソフト, エディタで開いて, 中身を確かめてみましょう.

課題


Copyright © 2003 Saburo Higuchi. All rights reserved.
樋口三郎 http://www.math.ryukoku.ac.jp/~hig/ hig mail address