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 のサイズおよびタイプと一致している必要があります。

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

例外

型 条件
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

戻り値

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

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

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

例外

型 条件
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 新しいイメージバッファを取得するためのバッファプール

戻り値

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

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

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

例外

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

IsHImageWrapSupported(ImageBuffer)

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

宣言

public static bool IsHImageWrapSupported(this ImageBuffer buffer)

パラメータ

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

戻り値

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

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

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

例外

型 条件
ArgumentNullException buffer が null の場合