OpenCV 学習:cvSaveImage の制限

2017-01-15 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
前(2017-01-13)の記事「TIFF 学習 : 画像 type」では、
  ・・・・・
  ・・・・・
  そして、<紙>の環境の“OpenCV”では、
  5種類全て、読み込みはOKだった。
  (手作業で作ったファイルで確認)
  ・・・・・
  ・・・・・
で終わっていた。

では、
書き込みはどうか?

<紙>が使っているのは、C 言語用関数“cvSaveImage
これ、“OpenCV 2.4.12 API Reference”を見ると:
int cvSaveImage(const char* filename, const CvArr* image, const int* params=0 )
(C function, in Reading and Writing Images and Video)
  imwrite
  Saves an image to a specified file.
  ・・・・・
  ・・・・・
  The function imwrite saves the image to the specified file.
  The image format is chosen based on the filename extension
   (see imread() for the list of extensions).
  Only 8-bit (or 16-bit unsigned (CV_16U) in case of PNG,
   JPEG 2000, and TIFF) single-channel or 3-channel (with 'BGR'
   channel order) images can be saved using this function.
  If the format, depth or channel order is different, ・・・
  ・・・・・
  ・・・・・
とある。
=== Google 翻訳:
  関数imwriteは、イメージを指定されたファイルに保存します。
  イメージフォーマットは、ファイル拡張子
  (拡張子のリストについてはimread()を参照)に基づいて選択されます。
  この機能を使用して、8ビット(またはPNG、JPEG 2000、TIFFの場合は
   16ビットの符号なし(CV_16U)のみ)のシングルチャンネルまたは
   3チャンネル(BGRチャンネル)画像を保存できます。
  フォーマット、深さまたはチャネルの順序が異なる場合、・・・
=== まあまあですね。

つまり、
TIFFでGrayScaleの場合は、8-bit か、16-bit の符号無しダケ

各種タイプの画像を読み込むことが出来たのに!


仕方がないから、
以前(2017-01-04)の記事「Perl から Lua : TIFF画像ファイルの入出力」で書いた、
  ・・・・・
  ・・・・・
  4年前(2013-09-07)の記事「Perl で、TIFFファイル出力」で書いた方式。
  即ち、
  パッケージ「package tif_Wt_pkg;」を、
  「require 'tif_Wt_pkg.pl';」として使う。
  ・・・・・
  ・・・・・
の様なコードで、Lua での書き出し用サブプログラムを作るかナ?


利用法は、・・・・・
require'tifGray_Wt_SUB'

tifGray_Wt( <ファイル名>, <データ>, <横サイズ>, <縦サイズ>, <タイプ> )
の様な感じ。

引数の説明:
<ファイル名> は、Luaの文字列
<データ> は、<タイプ>に合った画像データの先頭アドレス
<横サイズ>、<縦サイズ> は、整数
<タイプ> は、
 1:8ビット符号無し整数
 2:16ビット符号無し整数
 3:32ビット符号付き整数
 4:32ビット浮動小数点数
 5:64ビット浮動小数点数


これで、(<紙>にとって)汎用なものになる。

サンプル(32-bit float の例):
require'tifGray_Wt_SUB'
-- xx, yy = <横サイズ>, <縦サイズ>
img = ffi.new( 'float[?]', xx*yy )
-- img[n] = <Pixel 値> for n=0,xx*yy-1
tifGray_Wt( 'hogehoge.tif', img, xx, yy, 4 )
で済ませたい。


それで、
当時の perl の「tif_Wt_pkg」を Luaに移植する?



本日はここまで。


TIFF & OpenCV 学習は続く。


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


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

コメントの投稿

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

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



おきてがみ

最新記事
カレンダー
09 | 2017/10 | 11
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 31 - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

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

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


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

Google Analytics
ブックマーク