fig.1 QRコード
fig.2 QRコードの構成(2型, 25×25セル)
情報の種類 | 最大情報量 |
---|---|
数字 | 7,089文字 |
英数字 | 4,296文字 |
8ビットバイト(バイナリ) | 2,953文字 |
漢字 | 1,817文字 |
訂正レベル | 復元能力 |
---|---|
レベルL | コードワードの約7%が復元可能 |
レベルM | コードワードの約15%が復元可能 |
レベルQ | コードワードの約25%が復元可能 |
レベルH | コードワードの約30%が復元可能 |
// エラー処理は省略しているので注意して下さい。 #include "fie.h" #include <stdio.h> INT main() { FHANDLE fQRCObj = NULL; INT i; DOUBLE dSize; INT iNumOfDecodedQRs; INT* piDecodedQRIndex=NULL; CHAR* pcMessage=NULL; FMATRIX* pfmatDelimitingPts=NULL; FMATRIX* pfmatAppts=NULL; FMATRIX* pfmatCellOnes=NULL; FHANDLE hImg=NULL; // FIEライブラリの初期化処理 fnFIE_setup(); // 適当な8ビットグレイ画像を用意する - 画像ファイルは適宜用意すること fnFIE_load_bmp( "sample.bmp", &hImg, F_COLOR_IMG_TYPE_UC8 ); // QRコードオブジェクトの生成 fnFIE_qr_alloc_obj(&fQRCObj); //検出モードの設定 fnFIE_qr_set_effortlevel( fQRCObj, F_QR_MAXIMUM_EFFORT ); // 指定した画像に対して QRコード読み取り実行 fnFIE_qr_execute( fQRCObj, hImg ); // QRコード読み取り成功情報を参照 piDecodedQRIndex = NULL; fnFIE_qr_query_decoded( fQRCObj, (const INT **)&piDecodedQRIndex, &iNumOfDecodedQRs ); // QRコード情報の表示 for( i=0; i<iNumOfDecodedQRs; i++ ){ // デコードメッセージの参照 pcMessage = NULL; fnFIE_qr_query_message( fQRCObj, piDecodedQRIndex[i], (const CHAR **)&pcMessage ); //メッセージ表示 printf(pcMessage); // 必要に応じて、QRコードシンボル情報の参照を行って下さい pfmatDelimitingPts = NULL; fnFIE_qr_query_delimitingpts( fQRCObj, piDecodedQRIndex[i], &pfmatDelimitingPts ); pfmatAppts = NULL; fnFIE_qr_query_appts( fQRCObj, piDecodedQRIndex[i], &pfmatAppts ); pfmatCellOnes = NULL; fnFIE_qr_query_cellones( fQRCObj, piDecodedQRIndex[i], &pfmatCellOnes ); fnFIE_qr_query_mincellwidth( fQRCObj, piDecodedQRIndex[i], &dSize ); //... } // QR コードオブジェクト解放 fnFIE_free_object( fQRCObj ); // 画像オブジェクト解放 fnFIE_free_object( hImg ); // FIEライブラリの終了処理 fnFIE_teardown(); return 0; }
列挙型 | |
enum | f_qr_mode { F_QR_NORMAL_EFFORT = 100, F_QR_MAXIMUM_EFFORT = 101 } |
QRコード検出モード [詳細] | |
enum | f_qr_binarize_mode { F_QR_BIN_SHIFT_AVERAGE = 0, F_QR_BIN_FIX = 1, F_QR_BIN_DISCRIMINATION = 2, F_QR_BIN_SHIFT_AVERAGE_OFFSET = 3, F_QR_BIN_KITTLER = 4 } |
QRコード二値化手法 [詳細] | |
関数 | |
INT FVALGAPI | fnFIE_qr_alloc_obj (FHANDLE *pfQRCObj) |
![]() | |
INT FVALGAPI | fnFIE_qr_execute (FHANDLE fQRCObj, FHANDLE fimg) |
![]() | |
INT FVALGAPI | fnFIE_qr_query_decoded (FHANDLE fQRCObj, const INT **ppiDecodedQRIndex, INT *piNumOfDecodedQRs) |
![]() | |
INT FVALGAPI | fnFIE_qr_query_undecoded (FHANDLE fQRCObj, const INT **ppiUndecodedQRIndex, INT *piNumOfUndecodedQRs) |
![]() | |
INT FVALGAPI | fnFIE_qr_query_message (FHANDLE fQRCObj, INT iIndex, const CHAR **ppcMessage) |
![]() | |
INT FVALGAPI | fnFIE_qr_query_center (FHANDLE fQRCObj, INT iIndex, DOUBLE *pdCenterX, DOUBLE *pdCenterY) |
![]() | |
INT FVALGAPI | fnFIE_qr_query_size (FHANDLE fQRCObj, INT iIndex, INT *piQRSize) |
![]() | |
INT FVALGAPI | fnFIE_qr_query_mincellwidth (FHANDLE fQRCObj, INT iIndex, DOUBLE *pdMinCellWidth) |
![]() | |
INT FVALGAPI | fnFIE_qr_query_appts (FHANDLE fQRCObj, INT iIndex, FMATRIX **ppfmatAPPos) |
![]() | |
INT FVALGAPI | fnFIE_qr_query_cellones (FHANDLE fQRCObj, INT iIndex, FMATRIX **ppfmatCellOnes) |
![]() | |
INT FVALGAPI | fnFIE_qr_query_delimitingpts (FHANDLE fQRCObj, INT iIndex, FMATRIX **ppfmatDelimitingPts) |
![]() | |
INT FVALGAPI | fnFIE_qr_add_offsets (FHANDLE fQRCObj, INT iOffsetX, INT iOffsetY) |
![]() | |
INT FVALGAPI | fnFIE_qr_set_binwinsize (FHANDLE fQRCObj, INT iWinSize) |
![]() | |
INT FVALGAPI | fnFIE_qr_get_binwinsize (FHANDLE fQRCObj, INT *piWinSize) |
![]() | |
INT FVALGAPI | fnFIE_qr_set_minvar (FHANDLE fQRCObj, INT iBinMinVar) |
![]() | |
INT FVALGAPI | fnFIE_qr_get_minvar (FHANDLE fQRCObj, INT *piBinMinVar) |
![]() | |
INT FVALGAPI | fnFIE_qr_set_effortlevel (FHANDLE fQRCObj, enum f_qr_mode EffortLevel) |
![]() | |
INT FVALGAPI | fnFIE_qr_get_effortlevel (FHANDLE fQRCObj, enum f_qr_mode *pEffortLevel) |
![]() | |
INT FVALGAPI | fnFIE_qr_set_binarize_method (FHANDLE fQRCObj, enum f_qr_binarize_mode mode, INT threshold) |
![]() | |
INT FVALGAPI | fnFIE_qr_get_binarize_method (FHANDLE fQRCObj, enum f_qr_binarize_mode *mode, INT *threshold) |
![]() | |
INT FVALGAPI | fnFIE_qr_set_timeout (FHANDLE fQRCObj, DOUBLE timeout) |
![]() | |
INT FVALGAPI | fnFIE_qr_get_timeout (FHANDLE fQRCObj, DOUBLE *timeout) |
![]() |
enum f_qr_mode |
enum f_qr_binarize_mode |
INT FVALGAPI fnFIE_qr_alloc_obj | ( | FHANDLE * | pfQRCObj | ) |
QRコードオブジェクトの生成
[in] | pfQRCObj | QRコードオブジェクトのポインタ。関数エントリー時には *pfQRCObj を NULL で初期化してください。 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NOMEMORY | メモリ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_execute | ( | FHANDLE | fQRCObj, | |
FHANDLE | fimg | |||
) |
QRコード デコード関数
入力画像に対して、QRコードのデコードを実行する関数です。
[in,out] | fQRCObj | QRコードオブジェクト |
[in] | fimg | 入力画像(type:UC8/ch:1) |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_IMAGE | 画像オブジェクトの異常 | |
F_ERR_NOMEMORY | メモリ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_query_decoded | ( | FHANDLE | fQRCObj, | |
const INT ** | ppiDecodedQRIndex, | |||
INT * | piNumOfDecodedQRs | |||
) |
QRコード検出個数とインデックス配列の取得
シンボルの検出とデコードに成功したQRコードの数と、そのインデックス配列への参照を取得する関数です。ここで取得したインデックス配列を参照してQRコードの情報(デコードしたメッセージ、位置情報等)にアクセスします。
[in] | fQRCObj | QRコードオブジェクト |
[out] | ppiDecodedQRIndex | 正常に読み取ることができたQRコードインデックス配列の参照。関数エントリー時には *ppiDecodedQRIndex を NULL で初期化してください。 |
[out] | piNumOfDecodedQRs | 正常に読み取ることができたQRコード数 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_query_undecoded | ( | FHANDLE | fQRCObj, | |
const INT ** | ppiUndecodedQRIndex, | |||
INT * | piNumOfUndecodedQRs | |||
) |
デコードに失敗したQRコード個数とインデックス配列の取得
画像処理によってシンボルの検出は成功したが、デコード処理に異常が起こったQRコードの数とインデックス配列への参照を取得する関数です。ここで取得したインデックス配列を参照してQRコードの情報にアクセスします。
[in] | fQRCObj | QRコードオブジェクト |
[out] | ppiUndecodedQRIndex | デコードに失敗したQRコードインデックス配列の参照。関数エントリー時には *ppiUndecodedQRIndex を NULL で初期化してください。 |
[out] | piNumOfUndecodedQRs | デコードに失敗したQRコード数 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_query_message | ( | FHANDLE | fQRCObj, | |
INT | iIndex, | |||
const CHAR ** | ppcMessage | |||
) |
QRコードのメッセージの参照
デコードに成功したQRコードのメッセージを参照します。
[in] | fQRCObj | QRコードオブジェクト |
[in] | iIndex | 検出したQRコードインデックス配列の参照位置。(0≦iIndex<位置検出できたQRコード数) |
[out] | ppcMessage | 読み取ったQRコードメッセージ。関数エントリー時には *ppcMessage を NULL で初期化してください。 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NODATA | メッセージがありません(iIndex にデコードに失敗した値を指定) | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_query_center | ( | FHANDLE | fQRCObj, | |
INT | iIndex, | |||
DOUBLE * | pdCenterX, | |||
DOUBLE * | pdCenterY | |||
) |
読み取りに成功したQRコードの中心位置を取得
[in] | fQRCObj | QRコードオブジェクト |
[in] | iIndex | 検出したQRコードインデックス配列の参照位置(0≦iIndex<位置検出できたQRコード数) |
[out] | pdCenterX | QRコードの中心 X 座標 |
[out] | pdCenterY | QRコードの中心 Y 座標 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
fig. fnFIE_qr_query_center() によって得られた中心座標に対して×マークを描画した例
INT FVALGAPI fnFIE_qr_query_size | ( | FHANDLE | fQRCObj, | |
INT | iIndex, | |||
INT * | piQRSize | |||
) |
位置検出したQRコードのサイズの取得
対応するQRコードのサイズを取得します。サイズはQRコードの 1〜40型に対応する 21〜177の値になります。
[in] | fQRCObj | QRコードオブジェクト |
[in] | iIndex | 検出したQRコードインデックス配列の参照位置(0≦iIndex<位置検出できたQRコード数) |
[out] | piQRSize | QRコードサイズ(=1辺のセル個数(21〜177) ) |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_query_mincellwidth | ( | FHANDLE | fQRCObj, | |
INT | iIndex, | |||
DOUBLE * | pdMinCellWidth | |||
) |
検出したQRコードの最小セルサイズの取得
検出したQRコードに存在するセルの中で最小サイズであるセルの値を取得します。
[in] | fQRCObj | QRコードオブジェクト |
[in] | iIndex | 検出したQRコードインデックス配列の参照位置(0≦iIndex<位置検出できたQRコード数) |
[out] | pdMinCellWidth | 最小セル幅 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_query_appts | ( | FHANDLE | fQRCObj, | |
INT | iIndex, | |||
FMATRIX ** | ppfmatAPPos | |||
) |
読み取りに成功したQRコードのファインダーパタン、アライメントパタンの中心位置の参照
QRコードのファインダーパタン、アライメントパタンの位置情報(x,y)を取得します。
列ベクトル(3×n の行列で、n は列の数)として値を参照し、各列には、 のように座標が格納されます。
[in] | fQRCObj | QRコードオブジェクト |
[in] | iIndex | 検出したQRコードインデックス配列の参照位置(0≦iIndex<位置検出できたQRコード数) |
[out] | ppfmatAPPos | アライメントパタン中心座標(x,y)の参照。関数エントリー時には *ppfmatAPPos を NULL で初期化してください。 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
// ※サンプルコードは結果の描画部のみの記述です。 ... piDecodedQRIndex = NULL; fnFIE_qr_query_decoded( fQRCObj, &piDecodedQRIndex, &iNumOfDecodedQRs ) ); for( i=0; i<iNumOfDecodedQRs; i++ ){ //ファインダーパタン、アライメントパタン描画情報の取得 pfmatAppts = NULL; fnFIE_qr_query_appts( fQRCObj, piDecodedQRIndex[i], &pfmatAppts ); fnFIE_qr_query_mincellwidth( fQRCObj, piDecodedQRIndex[i], &dSize ); rc = dSize; //描画半径(任意) for( c=0; c<pfmatAppts->col; c++ ){ xc = pfmatAppts->m[0][c]; //各パタンのX座標 yc = pfmatAppts->m[1][c]; //各パタンのY座標 draw_circle( xc, yc, rc ); //描画関数(各自用意) } } ...
fig. fnFIE_qr_query_appts() によって得られた点情報を中心にセルサイズを加味して円を描画した例
INT FVALGAPI fnFIE_qr_query_cellones | ( | FHANDLE | fQRCObj, | |
INT | iIndex, | |||
FMATRIX ** | ppfmatCellOnes | |||
) |
読み取りに成功したQRコードのセル位置情報の参照
セルが存在する位置情報(x,y)を取得します。
得られる位置情報はQRコードを構成するセルのみです。つまりクワイエットゾーンと違う色を持つ箇所のみ位置が得られます。 列ベクトル(3×n の行列で、n は列の数)として値を参照し、各列には、 のように座標が格納されます。
[in] | fQRCObj | QRコードオブジェクト |
[in] | iIndex | 検出したQRコードインデックス配列の参照位置(0≦iIndex<位置検出できたQRコード数) |
[out] | ppfmatCellOnes | セルが存在する位置情報(x,y)の列ベクトルの参照。関数エントリー時には *ppfmatCellOnes を NULL で初期化してください。 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
// ※サンプルコードは結果の描画部のみの記述です。 ... piDecodedQRIndex = NULL; fnFIE_qr_query_decoded( fQRCObj, &piDecodedQRIndex, &iNumOfDecodedQRs ) ); for( i=0; i<iNumOfDecodedQRs; i++ ){ //クワイエットゾーンと違う色を持つセル部描画情報の取得 pfmatCellOnes = NULL; fnFIE_qr_query_cellones( fQRCObj, piDecodedQRIndex[i], &pfmatCellOnes ); fnFIE_qr_query_mincellwidth( fQRCObj, piDecodedQRIndex[i], &dSize ); rc = dSize/2; //描画半径(任意) for( c=0; c<pfmatCellOnes->col; c++ ){ xc = pfmatCellOnes->m[0][c]; //各セルのX座標 yc = pfmatCellOnes->m[1][c]; //各セルのY座標 draw_circle( xc, yc, rc ); //描画関数(各自用意) } } ...
fig. fnFIE_qr_query_cellones() によって得られた点情報を中心にセルサイズを加味して円を描画した例
INT FVALGAPI fnFIE_qr_query_delimitingpts | ( | FHANDLE | fQRCObj, | |
INT | iIndex, | |||
FMATRIX ** | ppfmatDelimitingPts | |||
) |
QRコード区切り座標値の参照
QRコードの外周を構成する位置情報(x,y)を取得します。
列ベクトル(3×n の行列で、n は列の数)として値を参照し、各列には、 のように座標が格納されます。
[in] | fQRCObj | QRコードオブジェクト |
[in] | iIndex | 検出したQRコードインデックス配列の参照位置(0≦iIndex<位置検出できたQRコード数) |
[out] | ppfmatDelimitingPts | QRコード区切り座標値(x,y)の列ベクトルの参照。関数エントリー時には *ppfmatDelimitingPts を NULL で初期化してください。 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
// ※サンプルコードは結果の描画部のみの記述です。 ... piDecodedQRIndex = NULL; fnFIE_qr_query_decoded( fQRCObj, &piDecodedQRIndex, &iNumOfDecodedQRs ) ); for( i=0; i<iNumOfDecodedQRs; i++ ){ //境界点情報の取得 pfmatDelimitingPts = NULL; fnFIE_qr_query_delimitingpts( fQRCObj, piDecodedQRIndex[i], &pfmatDelimitingPts ); //得られた点の先頭と終端を結ぶことで、QRコードシンボルを囲うように描画します for( c=0; c<pfmatDelimitingPts->col; c++ ){ xs = pfmatDelimitingPts->m[0][(c )%pfmatDelimitingPts->col]; // 境界線始点X座標 ys = pfmatDelimitingPts->m[1][(c )%pfmatDelimitingPts->col]; // 境界線始点Y座標 xe = pfmatDelimitingPts->m[0][(c+1)%pfmatDelimitingPts->col]; // 境界線終点X座標 ye = pfmatDelimitingPts->m[1][(c+1)%pfmatDelimitingPts->col]; // 境界線終点Y座標 draw_line( xs, ys, xe, ye ); //描画関数(各自用意) } } ...
fig. fnFIE_qr_query_delimitingpts() によって得られた点情報を線でつないで描画した例
INT FVALGAPI fnFIE_qr_add_offsets | ( | FHANDLE | fQRCObj, | |
INT | iOffsetX, | |||
INT | iOffsetY | |||
) |
QRコード検出位置に加味するオフセット量の設定
検出したすべてのQRコードの検出位置(x,y)に、本関数で設定したオフセット量を足します。 例えば、チャイルド画像を使用してQRコードの読み取りを行った場合に、本関数でオフセット値を入力するとルート画像上での位置情報として回答を得ることができます。
[in,out] | fQRCObj | QRコードオブジェクト |
[in] | iOffsetX | 検出位置に足されるオフセット量X |
[in] | iOffsetY | 検出位置に足されるオフセット量Y |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
// ※サンプルコードは本関数の使用についてのみの記述です。 ... // 画像オブジェクト(hImg)のサイズ 640x480 // QRコードの検出を始点:(50,100), 横サイズ:150, 縦サイズ:200のエリアで行う FHANDLE hImgChild = NULL; // child image FHANDLE fQRCObj = NULL; // QR code object INT child_sx, child_sy, child_width, child_height; // チャイルド画像エリア指定 child_sx = 50; child_sy = 100; child_width = 150; child_height = 200; // チャイルド画像生成 hImgChild = fnFIE_img_child_alloc( hImg, child_sx, child_sy, child_width, child_height ); // QRコードオブジェクト生成 fnFIE_qr_alloc_obj( &fQRCObj ); // QRコード読取り実行 fnFIE_qr_execute( fQRCObj, hImgChild ); // 親画像での結果座標に変換 fnFIE_qr_add_offsets( fQRCObj, child_sx, child_sy ); // 親画像上に結果座標を表示 ...
INT FVALGAPI fnFIE_qr_set_binwinsize | ( | FHANDLE | fQRCObj, | |
INT | iWinSize | |||
) |
QRコード検出時の2値化ウィンドウサイズ
QRコードを検出する際に使用する局所領域2値化のウィンドウサイズを設定します。セル1つの大きさ≦iWinSize を目安に設定します。
2値化手法がF_QR_BIN_SHIFT_AVERAGEまたはF_QR_BIN_SHIFT_AVERAGE_OFFSETの際に利用されます。
[in,out] | fQRCObj | QRコードオブジェクト |
[in] | iWinSize | 2値化ウィンドウサイズ(初期値:11, 3≦iWinSize≦15, iWinSize は奇数) |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_get_binwinsize | ( | FHANDLE | fQRCObj, | |
INT * | piWinSize | |||
) |
2値化ウィンドウサイズの取得
現在設定されている2値化ウインドウサイズを取得します。
[in] | fQRCObj | QRコードオブジェクト |
[out] | piWinSize | 2値化ウィンドウサイズ |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_set_minvar | ( | FHANDLE | fQRCObj, | |
INT | iBinMinVar | |||
) |
QRコード2値化分散しきい値の設定
2値化のしきい値を決定するための分散値を指定します。
[in,out] | fQRCObj | QRコードオブジェクト |
[in] | iBinMinVar | 2値化最小分散値 (初期値:1000, 0≦iBinMinVar) |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_get_minvar | ( | FHANDLE | fQRCObj, | |
INT * | piBinMinVar | |||
) |
2値化分散しきい値の取得
現在設定されている分散しきい値を取得します。
[in] | fQRCObj | QRコードオブジェクト |
[out] | piBinMinVar | 2値化分散しきい値 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_set_effortlevel | ( | FHANDLE | fQRCObj, | |
enum f_qr_mode | EffortLevel | |||
) |
動作モードの設定
QRコードシンボル検出の動作モード( F_QR_NORMAL_EFFORT or F_QR_MAXIMUM_EFFORT )を設定します。
[in,out] | fQRCObj | QRコードオブジェクト |
[in] | EffortLevel | 動作モード
|
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_get_effortlevel | ( | FHANDLE | fQRCObj, | |
enum f_qr_mode * | pEffortLevel | |||
) |
動作モードの取得
現在設定されている動作モードを取得します。
[in] | fQRCObj | QRコードオブジェクト |
[out] | piEffortLevel | 設定している動作モード
|
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_set_binarize_method | ( | FHANDLE | fQRCObj, | |
enum f_qr_binarize_mode | mode, | |||
INT | threshold | |||
) |
二値化手法の設定
QRコードを検出する際に使用する二値化手法を設定するとともに、二値化手法に応じたパラメータを設定します。
通常モードである F_QR_BIN_SHIFT_AVERAGE 以外に設定することで読み取り速度を向上できる場合があります。ただし、シェーディングがあったり低コントラストだったりする画像では読み取り性能が低下します。
[in,out] | fQRCObj | QRコードオブジェクト |
[in] | mode | 設定する二値化手法
|
[in] | threshold | 二値化手法別の閾値 引数 mode によって以下のように異なります。
|
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_get_binarize_method | ( | FHANDLE | fQRCObj, | |
enum f_qr_binarize_mode * | mode, | |||
INT * | threshold | |||
) |
二値化手法の取得
現在設定されている二値化手法と閾値を取得します。
[in] | fQRCObj | QRコードオブジェクト |
[out] | mode | 設定されている二値化手法
|
[out] | threshold | 二値化手法別の閾値 mode によって以下のように異なります。
|
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | QRコードオブジェクトの異常 | |
F_ERR_INVALID_PARAM | パラメータ異常 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_set_timeout | ( | FHANDLE | fQRCObj, | |
DOUBLE | timeout | |||
) |
タイムアウトの設定
QRコードの認識を打ち切る制限時間を設定します。0を指定した場合はタイムアウトは行いません。
初期値:0ms タイムアウト無し
[in] | fQRCObj | QRコードオブジェクト |
[in] | timeout | タイムアウト時間(ms) ( timeout >= 0.0 ) |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 異常終了(パラメータが不正) | |
F_ERR_INVALID_OBJECT | 不正なオブジェクトハンドルが渡されたため、異常終了。 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_qr_get_timeout | ( | FHANDLE | fQRCObj, | |
DOUBLE * | timeout | |||
) |
タイムアウトの取得
指定したオブジェクトハンドルにて設定されているQRコードの認識を打ち切る制限時間を取得します。
初期値:0ms タイムアウト無し
[in] | fQRCObj | QRコードオブジェクト |
[out] | timeout | タイムアウト時間(ms) ( timeout >= 0.0 ) |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 異常終了(パラメータが不正) | |
F_ERR_INVALID_OBJECT | 不正なオブジェクトハンドルが渡されたため、異常終了。 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |