Extensions Image, Audio et Vidéo Administration et programmation

Recherche d'images

L'extension Image contient trois API permettant de rechercher les images cataloguées d'une colonne de table. Ces API ne diffèrent que par le format des données d'entrée, à savoir une chaîne ou un objet de requête :


API Données d'entrée
QbQueryStringSearch Chaîne de requête
QbQuerySearch Descripteur de l'objet de requête
QbQueryNameSearch Nom de l'objet de requête

Pour ces trois API, vous devez également :

Vous devez également pointer sur un tableau de structures de sortie afin que les résultats de la recherche y soient placés. Ensuite, l'extension Image renvoie dans ces structures les indicateurs des images cibles dont les valeurs de caractéristique sont les plus proches de celle de la requête. Elle renvoie également un score pour chaque image qui précise le degré de similarité de la valeur de caractéristique de l'image par rapport à la requête. Cette structure est définie dans le fichier (en-tête) d'inclusion pour QBIC, dmbqbapi.h, comme suit :

typedef struct{
          char       imageHandle[MMDB_BASE_HANDLE_LEN+1];
          SQLDOUBLE  SCORE
} QbResult;

Vous devez affecter un tableau suffisamment grand pour contenir le nombre maximal de résultats et pointer sur ce tableau dans l'API. Vous devez également pointer sur un compteur : l'extension Image lui attribue une valeur en fonction du nombre des résultats qu'elle renvoie.

Dans l'exemple ci-dessous, l'API QbQueryStringSearch est utilisée pour effectuer une requête QBIC sur les images cataloguées d'une colonne de table. Notez que le pointeur sur la portée de la requête est défini par 0.

QbResult       returns[MaxQueryReturns];
SQLINTEGER     maxResults=qbiMaxQueryReturns;
 SQLINTEGER     count;
QbQueryHandle  qHandle;
QbResult       results[qbiMaxQueryReturns];
 
rc=QbQueryStringSearch(
          "QbColorFeatureClass color=<255, 0, 0>" /* chaîne de requête */
          "Employés",                /* table utilisateur */
          "photo",                   /* colonne image */
                maxResults,          /* nombre maximal de résultats */
                0,                   /* pointeur sur la portée de la requête * /
                qbiArray,            /* stockage de résultats dans un tableau */
                &count,              /* nombre d'images renvoyées */
                results);             /* tableau des résultats renvoyés */

La requête ci-dessous permet d'effectuer la même recherche à l'aide de l'API QbQuerySearch. Notez que le descripteur de l'objet de requête est défini comme données d'entrée.

QbResult       returns[MaxQueryReturns];
SQLINTEGER     maxResults=qbiMaxQueryReturns;
 SQLINTEGER     count;
QbQueryHandle  qHandle;
QbResult       results[qbiMaxQueryReturns];
 
rc=QbQuerySearch(
                qHandle,              /* descripteur de l'objet de requête */
                "Employés",          /* table utilisateur */
                "photo",             /* colonne image */
                maxResults,          /* nombre maximal de résultats */
                0,                   /* pointeur sur la portée de la requête * /
                qbiArray,            /* stockage de résultats dans un tableau */
                &count,                     /* nombre d'images renvoyées */
                results);                   /* tableau des résultats renvoyés */


[ Début de page | Page précédente | Page suivante | Table des matières | Index ]