TEOプロジェクトとは,画像処理研究用の画像フォーマット, および,その画像フォーマットをC言語で扱うためのライブラリを 作成することを目的として発足したプロジェクトです. 本ページは,TEOが今後も普及していくことを願って, TEOに関するいくつかの誤解を解いた上で, TEOは安心して使うことができるということを紹介します.
目次:
(1) TEOプロジェクトの概観
(2) TEOに関する誤解
(3) 安心して使えるTEO
どっぷりとTEO環境に染まるのも悪くはないですが, TEOは「開かれた環境」ですので, TEO環境をちょっとだけ使うという選択肢もあります. このあたりは,各自のプログラミングスタイルにあわせて自由に利用されるといいでしょう.
確かに,8bit, 3planeに収まる場合は,PPM画像フォーマットで十分でしょう. そのような場合でも,PPM画像をTEOライブラリで扱う, PPM画像をTEOToolsなどの周辺ツール群で処理するなど, TEO環境を利用することも可能です. gzipで圧縮したPPM画像も,TEOライブラリならそのまま読み込むことができるなど, 様々なメリットがあります.
for (y=TeoYstart(In); y<=TeoYend(In); y++)
for (x=TeoXstart(In); x<=TeoXend(In); x++)
pixel = TeoGetPixel(In,x+1,y,0,TEO_UINT8)-TeoGetPixel(In,x,y,0,TEO_UINT8);
:
このプログラムは,残念ながらセグメントエラーとなります.
しかし,デバッグモードでコンパイルし,実行すると,
[TEO WARN(main.c:38)] Out of x range. (x = 640 [0 <= x <= 639])と警告されます.このメッセージから, ソースmain.cの38行目で,X座標は0〜639の範囲内でないといけないのに, 範囲外の640という値になっていることがわかります. 通常のデバッガでは,ここまではわかりません. この他にも, 画像処理にありがちなミスをいろいろ見つけてくれます. バグがなくなったことを確認してから, デバッグモードをはずしてコンパイルすることで, 高速な実行バイナリを得ることができます. つまり,同じソースから, 安全なバイナリと高速なバイナリの両方をコンパイルできるわけです. このデバッグモードを使うと,くだらないバグに悩まされることが少なくなり, 生産性が向上します.
以上ように,基幹ライブラリには, 単なるベタ画像の入出力を越えた機能が実装されています.