※画面を横にするとパソコン版のレイアウトでご覧いただけます。
 正しく表示されていない場合は横向きでご覧ください。

XCLIB/XCLIB-IPL プログラマライブラリ

製品名

XCLIB/XCLIB-IPL

XCLIB サンプルコード

このページではEPIX製品専用XCLIBのサンプルコード例を解説します。詳細はお問い合わせください。

CLIBは画像取り込み用関数群を統合したソフトウェア開発用ライブラリになります。

サンプルコード

XCLIB関数
フレームバッファーアクセス

pxd_PIXCIopen("", "NTSC", "");      // 標準のNTSCフォーマット又は
//pxd_PIXCIopen("", "CCIR", "");     // CCIRフォーマット又は
//pxd_PIXCIopen("", "", "VIDEO.FMT") // .. 独自フォーマット

pxd_doSnap(0x1, 1, 0);            // スナップイメージ取得待ち

// モノクロデータへのアクセス
unsigned char buf[1024];         // サイズ>= # ピクセル per AOIライン
unsigned long c = 0;
int i, j, y;
for (y = 0;; y++) {
i = pxd_readuchar(0x1, 1, 0, y, -1, y+1, buf, sizeof(buf), "Grey");
if (i <= 0)                  // イメージの次のラインを読み込み
break;                    // ラインの最後まで読み込み後
for (j = 0; j < i; j++)            // スキャンして
if (buf[j] < 64)               // テストごピクセルカウント
c++;                     // .. 64未満の値で
}

 // RGBデータの1ラインへアクセス
pxd_readuchar(0x1, 1, 0, 0, -1, 1, buf, sizeof(buf), "RGB");
printf("Pixel at (0,20) is %d/%d/%d\\n", buf[20+0], buf[20+1], buf[20+2];

 // RBGのRデーターの1ラインへアクセス
i = pxd_readuchar(0x1, 1, 0, 0, -1, 1, buf, sizeof(buf), "RofRGB");
for (j = 0, c = 0; j < i; j++)
c += buf[j];
printf("Red componnent average is %f\\n", (double)count/i);

インターアクティブ
シーケンス取り込み

nt b;
pxd_PIXCIopen("", "NTSC", "");         // 標準NTSCフォーマット又は
//pxd_xcopen("", "CCIR", "");          // .. CCIRフォーマット又は
//pxd_xcopen("", "", "VIDEO.FMT");      // .. 独自フォーマット
for (b = 1; b <= pxd_imageZdim(); b++) {     // 全てのバッファーラン
printf("Key ENTER to capture buffer #%ld\\n", b);
while (getchar() != '\\n') ;             // ユーザトリガー待機
pxd_doSnap(0x1, b, 0);               // バッファー'b'への取り込み
}
printf("All buffers captured.\\n");

イメージ取り込みと
VGA表示

HDC hDC; RECT rect;

pxd_PIXCIopen("", "RS-170", "");      // 標準RS170フォーマット又は
//pxd_PIXCIopen("", "NTSC", "");     // .. NTSCフォーマット又は
//pxd_PIXCIopen("", "NTSC/YC", "");  // .. NTSC S-VIDEOフォーマット又は
//pxd_PIXCIopen("", "CCIR", "");     // .. CCIR,フォーマット又は
//pxd_PIXCIopen("", "PAL", "");      // .. PALフォーマット又は
//pxd_PIXCIopen("", "PAL/YC", "");   // .. PAL S-VIDEOフォーマット又は
//pxd_PIXCIopen("", "", "VIDEO.FMT") // .. 独自フォーマット
// & resolution
hDC = GetDC(hWnd);            // イメージウインドウへのハンドル
GetClientRect(hWnd, &rect);        // ウインドウサイズの取得
rect.right++; rect.bottom++;        // 包括的->排他的
SetStretchBltMode(hDC,STRETCH_DELETESCANS);//ウインドウモードをセット
pxd_doSnap(0x1, 1, 0); // snap image into buffer 1
pxd_renderStretchDIBits(0x1, 1, 0, 0, -1,-1,     // フレームバッファーの確保& AOI
0, hDC, // specify window
rect.right/4, rect.bottom/4,              // ウインドウの左上から
rect.right/2, rect.bottom/2,              // ウインドウサイズ
0);                             // 表示

ライブビデオ
グラフィックオーバーレイ

pxd_PIXCIopen("", "NTSC/YC", "");    // 標準S-Videoフォーマット又は //pxd_PIXCIopen("", "PAL", "");       // .. PALフォーマット
pxd_renderDirectVideoInit(1, hWnd);     //S/VGAへの init ダイレクトビデオ?
pxd_renderDirectVideoLive(1, hWnd,     // S/VGAへのライブビデオ表示
0,0,INT_MAX,INT_MAX,             // 位置とウインドウ範囲
RGB(0,0,189),RGB(0,0,189)); // グラフィックオーバーレイに使用するカラーキー
hDC = GetDC(hWnd)     // ライブビデオ上にグラフィックオーバーレイ
RECT rect;
SetRect(&rect, 20, 20, 40, 40);        // 標準GDI/MFCの呼び出し
DrawFocusRect(hDC, &rect);          // グラフィックを引くために使用可能
ReleaseDC(hWnd, hDC);            // ライブビデオ上

ページ上部へ戻る