C++ 応用 API
This content is not available in your language yet.
C API (PUCLIB.h) をオブジェクト指向ライクに扱える C++ ラッパークラス photron::PUCLib_Wrapper および、OpenCV や GPU グラフィックス領域(OpenGL / CUDA)との直接連携 API 仕様です。
1. クラス構造 & 初期化制御
Section titled “1. クラス構造 & 初期化制御”photron::PUCLib_Wrapper (コンストラクタ / デストラクタ)
Section titled “photron::PUCLib_Wrapper (コンストラクタ / デストラクタ)”photron::PUCLib_Wrapper();virtual ~photron::PUCLib_Wrapper();ラッパークラスのインスタンス生成および破棄を行います。デストラクタ呼び出し時にオープン中のデバイスは自動的にクローズされます。
| 項目 | 内容 |
|---|---|
| 引数 | なし |
| 例外 | 発生しません |
PUCLib_Wrapper::Initialize / Finalize
Section titled “PUCLib_Wrapper::Initialize / Finalize”PUCRESULT Initialize();PUCRESULT Finalize();SDK 全体の初期化および終了処理を行います。
| 引数 / 戻り値 | 型 | 説明 |
|---|---|---|
| 引数 | なし | - |
| 戻り値 | PUCRESULT |
成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧 |
PUCLib_Wrapper::Open / Close
Section titled “PUCLib_Wrapper::Open / Close”PUCRESULT Open(UINT32 nDeviceNo = 0);PUCRESULT Close();指定した ID のカメラデバイスをオープン / クローズします。
| 引数 / 戻り値 | 型 | 説明 |
|---|---|---|
nDeviceNo |
UINT32 |
[in] 接続対象のデバイス ID (デフォルト: 0) |
| 戻り値 | PUCRESULT |
成功時は PUC_SUCCEEDED / 失敗時は PUC_ERROR_DEVICE_OPEN |
2. 撮影設定 & データ取得
Section titled “2. 撮影設定 & データ取得”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)”PUCLib_Wrapper::GetMat (OpenCV 連携)
Section titled “PUCLib_Wrapper::GetMat (OpenCV 連携)”#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 |
PUCLIB SDK API リファレンス概要全ヘッダーファイルの構成、共通定数、および各機能リファレンスへのトップナビゲーション
