コンテンツにスキップ

C++ 応用 API

C API (PUCLIB.h) をオブジェクト指向ライクに扱える C++ ラッパークラス photron::PUCLib_Wrapper および、OpenCV や GPU グラフィックス領域(OpenGL / CUDA)との直接連携 API 仕様です。


photron::PUCLib_Wrapper (コンストラクタ / デストラクタ)

Section titled “photron::PUCLib_Wrapper (コンストラクタ / デストラクタ)”
photron::PUCLib_Wrapper();
virtual ~photron::PUCLib_Wrapper();

ラッパークラスのインスタンス生成および破棄を行います。デストラクタ呼び出し時にオープン中のデバイスは自動的にクローズされます。

項目 内容
引数 なし
例外 発生しません

PUCRESULT Initialize();
PUCRESULT Finalize();

SDK 全体の初期化および終了処理を行います。

引数 / 戻り値 型 説明
引数 なし -
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧

PUCRESULT Open(UINT32 nDeviceNo = 0);
PUCRESULT Close();

指定した ID のカメラデバイスをオープン / クローズします。

引数 / 戻り値 型 説明
nDeviceNo UINT32 [in] 接続対象のデバイス ID (デフォルト: 0)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 失敗時は PUC_ERROR_DEVICE_OPEN

PUCLib_Wrapper::SetResolution / GetResolution

Section titled “PUCLib_Wrapper::SetResolution / GetResolution”
PUCRESULT SetResolution(UINT32 nWidth, UINT32 nHeight);
PUCRESULT GetResolution(UINT32& nWidth, UINT32& nHeight);

撮影解像度を設定・取得します。

引数 / 戻り値 型 説明
nWidth UINT32 / UINT32& 横解像度(ピクセル単位)
nHeight UINT32 / UINT32& 縦解像度(ピクセル単位)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 範囲エラーは PUC_ERROR_ILLEGAL_RESOLUTION

PUCLib_Wrapper::GetFrame (自動デコード取得)

Section titled “PUCLib_Wrapper::GetFrame (自動デコード取得)”
PUCRESULT GetFrame(UCHAR* pDstBuf, UINT32 nBufSize, UINT32* pSeqNo = nullptr);

カメラからのキャプチャおよびラスタ画像への復号(デコード)を一括で行い、バッファへ書き込みます。

引数 / 戻り値 型 説明
pDstBuf UCHAR* [out] 復号画像データ(Bayer / 8bit)の格納先ポインタ
nBufSize UINT32 [in] 格納先バッファサイズ (バイト単位)
pSeqNo UINT32* [out] 取得したフレームのシーケンス番号格納先(任意)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧

3. サードパーティライブラリ連携 (OpenCV / GPU)

Section titled “3. サードパーティライブラリ連携 (OpenCV / GPU)”
#include <opencv2/opencv.hpp>
PUCRESULT GetMat(cv::Mat& mat, bool bConvertToBGR = false);

キャプチャおよび復号を行い、結果を直接 cv::Mat オブジェクトとして取得します。

引数 / 戻り値 型 説明
mat cv::Mat& [out] 格納先の cv::Mat オブジェクト (自動的にリサイズ・型割り当てが行われます)
bConvertToBGR bool [in] true の場合、Bayer パターンから BGR カラー画像へ変換して格納
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧

PUCLib_Wrapper::RegisterOpenGLTexture (OpenGL 連携)

Section titled “PUCLib_Wrapper::RegisterOpenGLTexture (OpenGL 連携)”
PUCRESULT RegisterOpenGLTexture(UINT32 nTextureId);

デコード後の画像データを、指定した OpenGL テクスチャ ID の VRAM 領域へ直接コピーするようバインドします。

引数 / 戻り値 型 説明
nTextureId UINT32 [in] glGenTextures で生成した OpenGL テクスチャ ID
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / GPU非対応時は PUC_ERROR_NOTSUPPORT

PUCLib_Wrapper::GetCUDAPtr (CUDA メモリ共有)

Section titled “PUCLib_Wrapper::GetCUDAPtr (CUDA メモリ共有)”
PUCRESULT GetCUDAPtr(void** ppDevicePtr);

GPU 加速デコード有効時、デコード結果が格納されている CUDA デバイスメモリの先頭ポインタを取得します。

引数 / 戻り値 型 説明
ppDevicePtr void** [out] GPU (CUDA) デバイスメモリポインタの格納先
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / GPU未初期化時は PUC_ERROR_GPU_UNINITIALIZE