TIFF画像出力サブプログラム 自作

2017-01-16 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
前(2017-01-15)の記事「OpenCV 学習:cvSaveImage の制限」では、
OpenCV”の“cvSaveImage”では書き出せないタイプがある。

そこで、
TIFF画像出力サブ(tifGray_Wt_SUB)なるものを設計した。

その後、いろいろ試していたが、一応完成した?


perl の「tif_Wt_pkg」では、
タグとしては、以下の 14 ケで済ませていた。
0x100、0x101、0x102、0x103、0x106、0x111、0x115、0x116、0x117、0x118、
0x119、0x11A、0x11B、0x128

しかし、0x153 が必要ですネ。


だが、もっと減らせられないかとケチってみたら、
0x103、0x118、0x119、0x11A、0x11B、0x128
の 6 ヶは無くても良かった。
( PicrBear、XnView、ImageJ、OpenCV で読み込めた。)


結局、以下の9ヶで十分?
0x100、0x101、0x102、0x106、0x111、0x115、0x116、0x117、0x153


それで、出来上がったのは:
----- tifGray_Wt_SUB.lua
--------- TIFF ヘッダー : GrayScale用 ( グローバルで )

H1_ = ffi.new( 'uint16_t[5]', 0x4949, 42, 8,0, 12 ) -- 10 == 0x0A
H2_ = ffi.new( 'uint32_t[28]', -- 112 == 0x70
0x100+65536*4, 1, -1, 0x101+65536*4, 1, -1,
0x102+65536*3, 1, -1, 0x106+65536*3, 1, 1,
0x111+65536*4, 1, 0x78, 0x115+65536*3, 1, 1,
0x116+65536*3, 1, -1, 0x117+65536*4, 1, -1,
0x153+65536*3, 1, -1, 0 ) ---------------- 最後は 2Byte で可
HH_ = {{1,1},{2,1},{4,1},{4,3},{8,3}} --- 8I, 16I, 32I, 32F, 64F

--------------------------------- SUB

-------- file名, データ, cols, raws, 1~5
function tifGray_Wt( fnm_, data_, x_, y_, typ_ )
local hT = HH_[typ_]; local h1, h2 = hT[1], hT[2]

local buf = ffi.new( 'uint8_t[?]', 0x78+x_*y_*h1 )
H2_[2], H2_[5], H2_[20], H2_[23] = x_, y_, y_, x_*y_
H2_[8], H2_[26] = h1*8, h2
ffi.copy( buf, H1_, 10 )
ffi.copy( buf+10, H2_, 110 )
ffi.copy( buf+120, data_, xx*yy*h1 ) -- buf+122 で無くて可
local OT = io.open( fnm_, 'wb' )
OT:write( ffi.string( buf, 120+x_*y_*h1 ) )
OT:close()
end
と云うもの。
ナマの画像データに比べて、120 バイト多いだけ。


本日はここまで。


TIFF & OpenCV 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


161231
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク