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ファイル]]

オプション

-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

バグ

  1. 逆光気味の写真が緑ががってしまうことがある。
    この現象が起きたら、"high_i = " と表示される値よりも小さな値 (2/3 程度?) を -h オプションで指定して実行しなおすと回避できます。
  2. 320×240 ピクセルのモードには未対応。

サンプル出力

こういう CMT ファイルをcmttoppm と ES-1000 の純正ソフトでそれぞれ変換した結果を以下に示します。少なくとも 素人目にはあまり差がないように見えます。

ES-1000 では CCD の構造上、上下左右の端の数ピクセル分の画像は色が不正 確になります。純正ソフトではこの部分を切り落としていますが、cmttoppm では色化け覚悟でこれを残しています。そのため純正ソフトの出力画像が 493 ×373 ピクセルなのに対して cmttoppm では 500×375 ピクセルと微妙に大き くなります。


cmttoppm の出力画像

生成方法
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

ES-1000 のページに戻る


このページについてのご質問・ご意見は hideki@teikan.net までお願いします.