Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
public class IplImageConverter : ICloneable, IFviCopyable, IDisposable |
Visual Basic |
---|
Public Class IplImageConverter Implements ICloneable, IFviCopyable, IDisposable |
Remarks
本ライブラリの画像オブジェクト と IplImage の間で画像データの相互変換を行うクラスです。
本クラスは Pointer フィールドに設定された IplImage 構造体へのポインタを介して操作を行います。
IplImage の確保と解放を行いませんので、外部で管理してください。
本ライブラリでは IplImage 構造体のパッキングサイズを 8 bytes に設定しています。
パッキングサイズが一致していない場合は、誤った値を参照するかアクセス違反を起こす場合がありますのでご注意ください。
基本仕様:
本クラスでは IplImage 構造体の下記のフィールドを参照して相互変換を行います。
下表の値の覧に記載されていない値には対応していません。
その他のフィールドの情報は無視します。
表) IplImage 構造体のフィールド:
フィールド | 値 | 説明 |
---|---|---|
imageData | 有効なアドレス |
画像データが格納された配列の先頭アドレスを示します。 dataOrder が IPL_DATA_ORDER_PIXEL の場合のみに対応します。 |
width | 1 以上 |
画像の幅をピクセル単位で示します。 WIL の画像オブジェクトの幅と一致している必要があります。 |
height | 1 以上 |
画像の高さをピクセル単位で示します。 WIL の画像オブジェクトの高さと一致している必要があります。 |
depth |
IPL_DEPTH_8U IPL_DEPTH_16U IPL_DEPTH_16S IPL_DEPTH_32S IPL_DEPTH_32F IPL_DEPTH_64F |
ピクセルの型を示します。 後述の "ピクセルの型について" をご参照ください。 |
nChannels | 1~4 |
画像のチャネル数を示します。 処理によって許容する条件が異なります。 チャネル指標の対応については、後述の "チャネル指標について" をご参照ください。 |
widthStep | 4 または 8 以上 |
画像データのパディングを含めた 1 行分のサイズをバイト単位で示します。 |
dataOrder | IPL_DATA_ORDER_PIXEL |
画像データの格納順を示します。 imageData をバイト単位に走査した場合、カラーコンポーネントが以下の順に並んでいることを示します。 3 チャネル数の場合: B0G0R0,B1G1R1,...,BnGnRn 4 チャネル数の場合: B0G0R0A0,B1G1R1A1,...,BnGnRnAn Intel IPL では IPL_DATA_ORDER_PLANE も定義されていますが、本ライブラリでは対応していません。 |
origin |
IPL_ORIGIN_TL IPL_ORIGIN_BL |
画像データの原点を示します。 IPL_ORIGIN_TL の場合は画像データの左上から順に imageData に格納されていることを示します。 IPL_ORIGIN_BL の場合は画像データの左下から順に imageData に格納されていることを示します。 |
ピクセルの型について:
IplImage の depth と WIL の画像オブジェクトの画像種別との関係について下表に示します。
下表で (非対応) と書かれたものはデータ変換が行えないことを示します。
(対応なし) と書かれたものは一致する型が無い事を示します。
異なる型の間ではキャストによるデータ変換を行います。
各画素を単純にキャストしてコピーしており、飽和処理は行っていません。
ピクセルのサイズが大きい方から小さい方へコピーする際や符号付きと符号なしの組み合わせでは桁落ちや溢れが発生する可能性があります。
表) 型の互換性:
IplImage.depth |
画像オブジェクト CFviImage (ImageType) |
GDI 画像オブジェクト CFviGdiImage |
FIE 画像オブジェクト FHANDLE (f_imgtype) |
---|---|---|---|
IPL_DEPTH_1U | (非対応) | (非対応) | (非対応) |
IPL_DEPTH_8S | (非対応) | (非対応) | (非対応) |
IPL_DEPTH_8U | UC8 | 8 | F_IMG_UC8 |
IPL_DEPTH_8U (x3) | RGB24 | 24 | F_IMG_RGBTRIPLE |
IPL_DEPTH_8U (x4) | RGB32 | 32 | F_IMG_RGBQUAD |
IPL_DEPTH_16U | US16 | (対応なし) | F_IMG_US16 |
IPL_DEPTH_16S | S16 | (対応なし) | F_IMG_S16 |
IPL_DEPTH_32S | I32 | (対応なし) | F_IMG_I32 |
IPL_DEPTH_32F | F32 | (対応なし) | F_IMG_FLOAT |
IPL_DEPTH_64F | D64 | (対応なし) | F_IMG_DOUBLE |
チャネル指標について:
IplImage と WIL の画像オブジェクトのチャネル指標(または RGB フィールド)の関係について下表に示します。
表) チャネル指標の対応:
IPL | Unpack | RGB24 | RGB32 |
---|---|---|---|
0 | 2 | B | B |
1 | 1 | G | G |
2 | 0 | R | R |
3 | 3 | (対応なし) | A |
画像データの複製 (1) (IPL ← WIL):
WIL の画像オブジェクトから IplImage へ変換する場合は下記メソッドを使用してください。
複製先の画像データ領域の再確保を行いませんので、予め 画像サイズを調整してください。
具体的な使用方法については各メソッドの説明をご参照ください。
画像データの複製 (2) (IPL → WIL):
IplImage から WIL の画像オブジェクトへ変換する場合は下記メソッドを使用してください。
複製先の画像データ領域の再確保を行いませんので、予め 画像サイズを調整してください。
具体的な使用方法については各メソッドの説明をご参照ください。
画像データの複製 (3) (IPL → WIL):
IplImage から WIL の画像オブジェクトへ変換する際に画像データ領域の確保も同時に行う場合は下記メソッドを使用してください。
具体的な使用方法については各メソッドの説明をご参照ください。
サイズ情報の取得 (IPL 用):
IplImage を確保する際に使用するサイズ情報を取得する場合は下記メソッドを使用してください。
具体的な使用方法については各メソッドの説明をご参照ください。
サイズ情報の取得 (WIL 用):
IplImage と互換性があるサイズ情報を取得する場合は下記メソッドを使用してください。
具体的な使用方法については各メソッドの説明をご参照ください。
Inheritance Hierarchy
FVIL.Ipl..::..IplImageConverter