Class ImageBufferExtensionsHalconDotNet
MVTec.HalconDotNet ライブラリ(https://mvtec.com/)との相互運用のために、ImageBuffer 用の拡張メソッドを提供します。
継承されたメンバ
Namespace: ic4
Assembly: ic4dotnet.HalconDotNet.dll
構文
public static class ImageBufferExtensionsHalconDotNet
例
これらのメンバーは拡張メソッドであるため、明示的に呼び出すことも、メンバー関数であるかのように ImageBuffer オブジェクトに対して直接呼び出すこともできます。
メンバー関数として呼び出すには、ic4 名前空間に対する using ディレクティブが必要です。
using ic4;
// (...)
// Get image buffer from somewhere
ImageBuffer imageBuffer = GetImageBuffer();
// Create copy in a HImage object
HImage img = imageBuffer.CreateHImageCopy();
推奨される方法ではありませんが、この関数は明示的に呼び出すこともできます。
// Get image buffer from somewhere
ImageBuffer imageBuffer = GetImageBuffer();
// Create copy in a HImage object
HImage img = ImageBufferExtensionsHalconDotNet.CreateHImageCopy(imageBuffer);
メソッド
CopyFrom(ImageBuffer, HImage)
HALCON の HImage の内容を、この ImageBuffer にコピーします。
宣言
public static void CopyFrom(this ImageBuffer buffer, HImage src)
パラメータ
| 型 | 名前 | 説明 |
|---|---|---|
| ImageBuffer | buffer | イメージバッファ |
| HImage | src | HALCON の |
備考
buffer の画像タイプは、src のサイズおよびタイプと一致している必要があります。
例外
| 型 | 条件 |
|---|---|
| ArgumentNullException | buffer が null、または src が null の場合にスローされます。 |
| NotSupportedException | src の型がサポートされていない場合にスローされます。 |
| ArgumentException | buffer のイメージ型が、src の型およびサイズと一致しない場合にスローされます。 |
CreateHImageCopy(ImageBuffer)
イメージバッファのデータのコピーを作成し、HImage に格納します。
宣言
public static HImage CreateHImageCopy(this ImageBuffer buffer)
パラメータ
| 型 | 名前 | 説明 |
|---|---|---|
| ImageBuffer | buffer | イメージバッファ |
戻り値
| 型 | 説明 |
|---|---|
| HImage | 渡されたイメージバッファ内の画像データのコピーを含む HImage |
備考
HImage の画像フォーマットは、イメージバッファのピクセルフォーマットに依存します。
- Mono8 のイメージバッファは、単一チャネルの
byte画像として返されます。 - 1ピクセルあたり 8 ビットを超えるモノクロのイメージバッファ(例:Mono12p)は変換され、単一チャネルの
uint2画像として返されます。 - 8 ビットの Bayer イメージバッファ(例:BayerBG8)は、3 チャネルの
byte画像に変換されます。 - 1ピクセルあたり 8 ビットを超える Bayer イメージバッファ(例:BayerGB12p)は、3 チャネルの
uint2画像に変換されます。 - BGRa16 のイメージバッファは、3 チャネルの
uint2画像として返されます。 - その他のカラーイメージバッファ(例:BGRa8)は、3 チャネルの
byte画像として返されます。
例外
| 型 | 条件 |
|---|---|
| ArgumentNullException | buffer が null の場合にスローされます。 |
| NotSupportedException | イメージバッファのピクセルフォーマットがサポートされていない場合にスローされます。 |
CreateHImageWrap(ImageBuffer)
渡されたイメージバッファを HImage でラップします。
宣言
public static HImage CreateHImageWrap(this ImageBuffer buffer)
パラメータ
| 型 | 名前 | 説明 |
|---|---|---|
| ImageBuffer | buffer | イメージバッファ |
戻り値
| 型 | 説明 |
|---|---|
| HImage | イメージバッファのメモリをピクセルストレージとして使用する HImage |
備考
イメージバッファをラップできるかどうかを確認するには、IsHImageWrapSupported(ImageBuffer) を参照してください。
イメージバッファの内容を HImage でラップできるのは、ピクセルフォーマットが以下のいずれかの場合のみです。
イメージバッファには水平方向のパディングが存在してはいけません。Pitch は、画像の幅 × ピクセルフォーマットにおける 1 ピクセルあたりのバイト数と等しい必要があります。
返される HImage オブジェクトは、渡されたイメージバッファへの参照を保持します。そのため、HImage オブジェクトが破棄(またはガベージコレクション)されるまで、イメージバッファは再利用されません。
例外
| 型 | 条件 |
|---|---|
| ArgumentNullException | buffer が null の場合 |
| NotSupportedException | イメージバッファのピクセルフォーマットのデータを HImage としてラップできない場合 |
CreateImageBufferCopy(HImage)
HALCON の HImage の内容を、新しい ImageBuffer にコピーします。
宣言
public static ImageBuffer CreateImageBufferCopy(this HImage src)
パラメータ
| 型 | 名前 | 説明 |
|---|---|---|
| HImage | src | HALCON の HImage |
例外
| 型 | 条件 |
|---|---|
| ArgumentNullException | src が null の場合 |
| NotSupportedException | HImage の型がサポートされていない場合 |
CreateImageBufferCopy(HImage, BufferPool)
HALCON のHImage の内容を、新しい ImageBuffer にコピーします。
宣言
public static ImageBuffer CreateImageBufferCopy(this HImage src, BufferPool pool)
パラメータ
| 型 | 名前 | 説明 |
|---|---|---|
| HImage | src | HALCON の HImage |
| BufferPool | pool | 新しいイメージバッファを取得するためのバッファプール |
例外
| 型 | 条件 |
|---|---|
| ArgumentNullException | src が null、または pool が null の場合 |
| NotSupportedException | HImage の型がサポートされていない場合 |
IsHImageWrapSupported(ImageBuffer)
CreateHImageWrap(ImageBuffer)を、渡されたイメージバッファで使用できるかどうかを確認します。
宣言
public static bool IsHImageWrapSupported(this ImageBuffer buffer)
パラメータ
| 型 | 名前 | 説明 |
|---|---|---|
| ImageBuffer | buffer | イメージバッファ |
例外
| 型 | 条件 |
|---|---|
| ArgumentNullException | buffer が null の場合 |


