Class ImageBufferExtensionsHalconDotNet

MVTec.HalconDotNet ライブラリ(https://mvtec.com/)との相互運用のために、ImageBuffer 用の拡張メソッドを提供します。

継承

ImageBufferExtensionsHalconDotNet
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 の HImage

備考

buffer の画像タイプは、src のサイズおよびタイプと一致している必要があります。

  • srcbyte 型の 1 チャンネル画像の場合、buffer は同一サイズのMono8 である必要があります。
  • srcuint2 型の 1 チャンネル画像の場合、buffer は同一サイズのMono16 である必要があります。
  • srcbyte 型の 3 チャンネル画像の場合、buffer は同一サイズのBGRa8である必要があります。
  • srcuint2 型の 3 チャンネル画像の場合、buffer は同一サイズのBGRa16 である必要があります。
  • その他の画像タイプはサポートされていません。

例外

条件
ArgumentNullException buffernull、または srcnull の場合にスローされます。
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 buffernull の場合にスローされます。
NotSupportedException イメージバッファのピクセルフォーマットがサポートされていない場合にスローされます。

CreateHImageWrap(ImageBuffer)

渡されたイメージバッファを HImage でラップします。

宣言

public static HImage CreateHImageWrap(this ImageBuffer buffer)

パラメータ

名前 説明
ImageBuffer buffer イメージバッファ

戻り値

説明
HImage イメージバッファのメモリをピクセルストレージとして使用する HImage
備考

イメージバッファをラップできるかどうかを確認するには、IsHImageWrapSupported(ImageBuffer) を参照してください。

イメージバッファの内容を HImage でラップできるのは、ピクセルフォーマットが以下のいずれかの場合のみです。

イメージバッファには水平方向のパディングが存在してはいけません。Pitch は、画像の幅 × ピクセルフォーマットにおける 1 ピクセルあたりのバイト数と等しい必要があります。

返される HImage オブジェクトは、渡されたイメージバッファへの参照を保持します。そのため、HImage オブジェクトが破棄(またはガベージコレクション)されるまで、イメージバッファは再利用されません。

例外

条件
ArgumentNullException buffernull の場合
NotSupportedException イメージバッファのピクセルフォーマットのデータを HImage としてラップできない場合

CreateImageBufferCopy(HImage)

HALCON の HImage の内容を、新しい ImageBuffer にコピーします。

宣言

public static ImageBuffer CreateImageBufferCopy(this HImage src)

パラメータ

名前 説明
HImage src HALCON の HImage

戻り値

説明
ImageBuffer src の内容のコピーを含む新しいイメージバッファ
備考

生成されるイメージバッファのピクセルフォーマットは、src の型に依存します。

  • srcbyte 型の 1 チャネル画像の場合、返されるイメージバッファのピクセルフォーマットは Mono8 になります。
  • srcuint2 型の 1 チャネル画像の場合、返されるイメージバッファのピクセルフォーマットは Mono16 になります。
  • srcbyte 型の 3 チャネル画像の場合、返されるイメージバッファのピクセルフォーマットは BGRa8 になります。
  • srcuint2 型の 3 チャネル画像の場合、返されるイメージバッファのピクセルフォーマットは BGRa16 になります。
  • その他の画像タイプはサポートされていません。

例外

条件
ArgumentNullException srcnull の場合
NotSupportedException HImage の型がサポートされていない場合

CreateImageBufferCopy(HImage, BufferPool)

HALCON の HImage の内容を、新しい ImageBuffer にコピーします。

宣言

public static ImageBuffer CreateImageBufferCopy(this HImage src, BufferPool pool)

パラメータ

名前 説明
HImage src HALCON の HImage
BufferPool pool 新しいイメージバッファを取得するためのバッファプール

戻り値

説明
ImageBuffer src の内容のコピーを含む新しいイメージバッファ
備考

生成されるイメージバッファのピクセルフォーマットは、src の型に依存します。

  • srcbyte 型の 1 チャネル画像の場合、返されるイメージバッファのピクセルフォーマットは Mono8 になります。
  • srcuint2 型の 1 チャネル画像の場合、返されるイメージバッファのピクセルフォーマットは Mono16 になります。
  • srcbyte 型の 3 チャネル画像の場合、返されるイメージバッファのピクセルフォーマットは BGRa8 になります。
  • srcuint2 型の 3 チャネル画像の場合、返されるイメージバッファのピクセルフォーマットは BGRa16 になります。
  • その他の画像タイプはサポートされていません。

例外

条件
ArgumentNullException srcnull、または poolnull の場合
NotSupportedException HImage の型がサポートされていない場合

IsHImageWrapSupported(ImageBuffer)

CreateHImageWrap(ImageBuffer)を、渡されたイメージバッファで使用できるかどうかを確認します。

宣言

public static bool IsHImageWrapSupported(this ImageBuffer buffer)

パラメータ

名前 説明
ImageBuffer buffer イメージバッファ

戻り値

説明
bool イメージバッファの内容を HImage としてラップできる場合は true、それ以外の場合は false
備考

イメージバッファの内容を HImage でラップできるのは、ピクセルフォーマットが以下のいずれかの場合のみです。

イメージバッファには水平方向のパディングが存在してはいけません。Pitch は、画像の幅 × ピクセルフォーマットにおける 1 ピクセルあたりのバイト数と等しい必要があります。

例外

条件
ArgumentNullException buffernull の場合