イメージ・エクステンダーには、表列にあるカタログ・イメージを照会するための API が 3 つ用意されています。 これらの API は、入力として照会ストリングまたは照会オブジェクトを必要としているかどうかだけが異なります。
API | 入力 |
---|---|
QbQueryStringSearch | 照会ストリング |
QbQuerySearch | 照会オブジェクト・ハンドル |
QbQueryNameSearch | 照会オブジェクト名 |
3 つのすべての API において、次のことも行う必要があります。
さらに、この探索の結果を入れる出力構造体配列をポイント指定する必要があります。 この結果、イメージ・エクステンダーは、フィーチャー値が照会のフィーチャー値に最も似ているターゲット・イメージのハンドルをこれらの構造体に入れて戻します。 さらに、イメージ・エクステンダーは、その画像のフィーチャー値が照会にどのくらい似ているかを示す得点を画像ごとに戻します。 この構造体は、QBIC のインクルード (ヘッダー) ファイル dmbqbapi.h に次のように定義されています。
typedef struct{ char imageHandle[MMDB_BASE_HANDLE_LEN+1]; SQLDOUBLE SCORE } QbResult;
指定する結果の最大数が入るだけの配列を割り振り、その配列を API で指定する必要があります。 さらに、カウンターをポイントしなければなりません。 イメージ・エクステンダーは、戻す結果の数をこのカウンターに設定します。
次の例では、QbQueryStringSearch API を使用して、表列内のカタログ・イメージを内容によって照会します。 照会範囲へのポインターが値 0 に設定されていることに注意してください。
QbResult returns[MaxQueryReturns]; SQLINTEGER maxResults=qbiMaxQueryReturns; SQLINTEGER count; QbQueryHandle qHandle; QbResult results[qbiMaxQueryReturns]; rc=QbQueryStringSearch( "QbColorFeatureClass color=<255, 0, 0>" /*query string */ "employee", /* user table */ "picture", /* image column */ maxResults, /* maximum number of results */ 0, /* query scope pointer * / qbiArray, /* store results in an array */ &count, /* count of returned images */ results); /* array of returned results */
QbQuerySearch API を使用する要求を以下に示します。 入力として照会オブジェクト・ハンドルが指定されていることに注意してください。
QbResult returns[MaxQueryReturns]; SQLINTEGER maxResults=qbiMaxQueryReturns; SQLINTEGER count; QbQueryHandle qHandle; QbResult results[qbiMaxQueryReturns]; rc=QbQuerySearch( qHandle, / query object handle */ "employee", /* user table */ "picture", /* image column */ maxResults, /* maximum number of results */ 0, /* query scope pointer * / qbiArray, /* store results in an array */ &count, /* count of returned images */ results); /* array of returned results */