Perl から Lua : TIFF画像ファイルの入出力

2017-01-04 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
前(2017-01-02)の記事「Perl から Lua :バイナリファイルの出力」に続いて、

かれこれ3年ほど前に “Perl”で書いていたものを、
Lua”と云っても “GSL Shell”に移植するための準備その2。

1番目:入力対象 TIFF画像のサイズを取得する。
実際にデータを入力するのは、下位の C言語で書いたプログラム。

当時の Perl でのコードは?

5年前(2012-07-04)の記事「Perl でTIFF画像入出力」で書いた方式。
即ち、
  (ImageMagick の)convert.exeで、TIFFをPGM形式に変換し、

  但し(ImageMagick の)convert.exeが出力する
    「PGM形式」はバイナリの「P5」である。

  (PGM形式)をテキスト・ファイルとして3行目まで読み。
  「P5」の確認し、
  列数、行数を取得し、

と云った手順。

これを、GSL Shellで行うには、
自作した“cv2.lua”モジュールを使う。
( その実体は“OpenCV 3.0 gold”の DLL )

コーディング例は:
local cv2 = require'cv2'
img = cv2.cvLoadImageM( 'hogehoge.tif', 0 )
cols, rows = img.xx, img.yy
と云うことで、
cols(横サイズ)とrows(縦サイズ)が得られる。


2番目:TIFF画像を直接出力する。

当時の Perl でのコードは?

4年前(2013-09-07)の記事「Perl で、TIFFファイル出力」で書いた方式。
即ち、
パッケージ「package tif_Wt_pkg」を、
「require 'tif_Wt_pkg.pl';」として使う。

これを、GSL Shellで行うには、
上記(入力系)と同様に、
自作した“cv2.lua”モジュールを使う。

コーディング例は:
local cv2 = require'cv2'
img = cv2.cvCreateMat( yy, xx, CV_8UC1 ) -- 8ビット,符号なしint
---------- 行数, 列数, ==0

-- img に、画像データを格納。
-- img.Byte[] だと、1次元配列。

cv2.cvSaveImage( charA('hogehoge.tif'), img, 0 ) -- 第3引数は、必須 ( 0 で可 )
と云うことで、
スッキリしたコードでOK。


本日はここまで。


“Perl から Lua ( GSL Shell ) への移植”準備その2は続く。


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


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

コメントの投稿

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

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



おきてがみ

最新記事
カレンダー
05 | 2017/06 | 07
- - - - 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
ブックマーク