cmttoppm: CMT から PPM へのコンバータ
[Japanese]
[English]
CCD の解析結果をもとに、ES-1000 の内部形式であ
る CMT 形式から Unix などで一般的な PPM 形式へのイメージのコンバータを
作ってみました。Linux でしか動作は確認していませんが、単にファイルを読
み書きするだけのフィルタですから他の OS でも簡単に動くと思います。
LXDC の標準のファイル形式である IMG ファイルも
一応変換できるようになっています。
配布ファイル
C のソースがここにあります。以下のような手順
でコンパイルして下さい:
gcc -O2 -lm cmttoppm.c -o cmttoppm
今のところドキュメントはこのページだけですのでこのページをファイルに落
して下さい。あとでマニュアル書きます。
cmttoppm の概要
以下のような指定で CMT ファイルから PPM ファイルへの変換ができます:
cmttoppm [オプション] [CMTファイル [PPMファイル]]
- CMT ファイルおよび PPM ファイルの指定を省略した場合はそれぞれ標準
入力・標準出力が使われます。
- CMT ファイルの代わりに LXDC の IMG ファイルを指定することもできま
す (ヘッダの内容で自動判別されます)。
オプション
- -s (デフォールト: 1.5)
- 彩度の補正係数 (大きくすると色が鮮やかになります)
- -G (デフォールト: 0.5)
- γ係数 (小さくすると暗い部分が見やすくなります)
- -r, -g, -b (デフォールト: それぞれ 0.64, 0.58, 1.00)
- それぞれ赤・緑・青の補正係数 (大きくするとその色が強くなります)
- -n (デフォールト: 3)
- 下限・上限の無視する要素のパーセンテージ (大きくするとコントラスト
が上がります)
- -l
- 下限値の直接指定
- -h
- 上限値の直接指定
出力の加工
cmttoppm が出力する PPM ファイルは Imagemagick, Netpbm, xv などの多く
の Unix 上のイメージアプリケーションで読み込めます。
どうせ画像を利用する場合は拡大縮小するだろうということで、cmttoppm で
はアスペクト比補正をさぼっています。適当なツールを使って縦を 156% に拡
大して使って下さい。
ついでにシャープネスも少し上げておくときれいになります。
たとえば
Imagemagick では、こんなオプション指定をして convert を実行す
ると ES-1000 純正ソフトに近い出力が得られます:
convert -geometry 100%x156% -sharpen 80 src.ppm dest.ppm
バグ
- 逆光気味の写真が緑ががってしまうことがある。
この現象が起きたら、"high_i = " と表示される値よりも小さな値 (2/3 程度?)
を -h オプションで指定して実行しなおすと回避できます。
- 320×240 ピクセルのモードには未対応。
サンプル出力
こういう CMT ファイルをcmttoppm と
ES-1000 の純正ソフトでそれぞれ変換した結果を以下に示します。少なくとも
素人目にはあまり差がないように見えます。
ES-1000 では CCD の構造上、上下左右の端の数ピクセル分の画像は色が不正
確になります。純正ソフトではこの部分を切り落としていますが、cmttoppm
では色化け覚悟でこれを残しています。そのため純正ソフトの出力画像が 493
×373 ピクセルなのに対して cmttoppm では 500×375 ピクセルと微妙に大き
くなります。
生成方法
cmttoppm 960812-2.cmt 960812-2.ppm
convert -quality 85 -sharpen 80 -geometry 100%x156% 960812-2.ppm 960812-2-hideki.jpg
生成方法
(Windows 上の純正ソフトで 960812-2.cmt を読み込んで 960812-2.tif に出力)
convert -quality 85 960812-2.tif 960812-2-chinon.jpg
このページについてのご質問・ご意見は
hideki@teikan.net
までお願いします.