OpenCV 学習:CvMat型の type 項目

2017-01-18 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
前(2017-01-16)の記事「TIFF画像出力サブプログラム 自作」に続いて、
“OpenCV”の学習。

その前(2017-01-15)の記事「OpenCV 学習:cvSaveImage の制限」で、
  ・・・・・
  ・・・・・
  そして、<紙>の環境の“OpenCV”では、
  5種類全て、読み込みはOKだった。
  (手作業で作ったファイルで確認)
  ・・・・・
  ・・・・・
と書いている。

これは、入力する画像ファイルのタイプが分かっている場合。

では、
事前に分かっていない画像ファイルを読み込んだ場合、
そのタイプはどうやって判定する?


CvMat 型の構造体定義については、
昨年(2016-03-04)の記事「GSL Shell 学習:OpenCV の CvMat 型」で書いている。
  ・・・・・
  ・・・・・
ffi.cdef[[
typedef void CvArr;

typedef struct CvMat{
int type; int step; int* refcount; int hdr_refcount;
union{ unsigned char* Byte; char* Char; unsigned short* Word; int* Int; double* Dbl; };
union{ int rows; int height; int yy; };
union{ int cols; int width; int xx; };
} CvMat;

CvMat* cvCreateMat( int rows, int cols, int type );
void cvmSet( CvMat* mat, int row, int col, double value );
]]
  ・・・・・
  ・・・・・

つまり、
この定義にある type 項目で判定する?


5種類のファイルについて、調べてみた。

・8ビット整数・・・・・・・・ 0x42424000
・16ビット整数・・・・・・・ 0x42424002
・32ビット整数・・・・・・・ 0x42424005
・32ビット浮動小数点数・・・ 0x42424005
・64ビット浮動小数点数・・・ 0x42424006

なにか変だ

そう、32ビット の場合。
整数データと浮動小数点データの区別が出来ない???

これは、“ImageJ”と同じ?

つまり、
32ビットデータの場合、読み込みは正しいが
内部では、浮動小数点データに成っている?

いや、ImageJ では、変換されているのかもしれないが、
OpenCV の cvLoadImageMでは、そのまま。


これは困ったこと。


暫く思案していたが、・・・・・

値の範囲を調べることで識別できないか???

どうも、
ゼロの場合は、
int32_t でも float でも、全ビットゼロの様だが、

一旦整数型と見なして判定する。

例えば、絶対値が 500,000,000 より大きいか小さいかとかで、

大きい時は float 型データ。
小さい時は int32_t 型データ。

つまり、符号無し整数では、0~500,000,000 迄であるとし、
正の浮動小数点数では、ゼロか 10^-12 以上であるとする。

と云うのは、
実用上問題無い???


本日はここまで。


TIFF & OpenCV 学習は続く。


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


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

コメントの投稿

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

おきてがみ/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
ブックマーク