Vous pouvez utiliser une chaîne de requête pour identifier les caractéristiques, leurs valeurs et leur poids pour votre requête. Une chaîne de requête est une chaîne de caractères se présentant sous la forme nom_caractéristique valeur, où nom_caractéristique est un nom de caractéristique QBIC et valeur une valeur associée à celle-ci.
Vous pouvez indiquer plusieurs caractéristiques dans une requête. Vous précisez ensuite un couple nom/valeur pour chacune d'entre elles, comme décrit à la section Valeur de caractéristique. Les couples successifs sont séparés par une clause AND. Lorsque vous spécifiez de nombreuses caractéristiques dans une requête, vous pouvez également affecter un poids à une ou plusieurs d'entre elles, comme décrit à la section Poids de caractéristique. La chaîne de requête se présente alors sous la forme nom_caractéristique valeur poids, où poids correspond au poids affecté à la caractéristique.
L'extension Image comprend une interface API (QbQueryStringSearch) et deux fonctions utilisateur (QbScoreFromStr et QbScoreTBFromStr) utilisant une chaîne de requête. Lorsque vous lancez une requête, vous devez utiliser l'API ou la fonction utilisateur appropriée, et spécifier la chaîne de requête en tant que paramètre d'entrée. (Pour plus de détails, reportez-vous à la section Lancement de requêtes par contenu d'images.)
Dans la chaîne de requête, précisez une valeur pour chacune des caractéristiques contenues dans la requête.
Lors du passage d'une requête à l'intérieur d'une commande DB2, il vous faut respecter certaines conventions d'appellation de fichier pour le bon fonctionnement de la requête. Les noms de fichier contenant des espaces ou le signe (> doivent être indiqués entre guillemets. Les guillemets sont facultatifs pour les autres noms de fichier. Chaque guillemet encadrant un nom de fichier doit être précédé d'un caractère d'échappement (\). Si la requête n'est pas transmise à l'intérieur d'une commande DB2, il n'est pas nécessaire d'inclure des caractères d'échappement avec les guillemets.
Dans l'exemple suivant, une chaîne de requête est transmise à l'aide d'une commande DB2 :
db2 "sélectionner id_image dans la table (mmdbsys.QbScoreTBFromStr ('texture file=<server,patterns/ptrn07.gif>', 'fabric', 'swatch_img', 10)) as T1"
Le tableau suivant répertorie les valeurs autorisées pour chaque
caractéristique. Sous chaque nom de caractéristique, vous trouverez une
version courte pouvant être utilisée.
Tableau 8. Valeurs de caractéristiques autorisées dans la chaîne de requête
Nom de la caractéristique | Valeur |
---|---|
averageColor, average ou QbColorFeatureClass | color=<val_rouge, val_vert, val_bleu>
Chaque valeur de couleur est un nombre entier compris entre 0 et 255, identifiant la valeur rouge (val_rouge), la valeur vert (val_vert) et la valeur bleu (val_bleu) de l'image. file=<empl_fichier, nom_fichier> Empl_fichier correspond à l'emplacement du fichier du serveur. nom_fichier, correspond au chemin d'accès complet du fichier, dans le format convenant au système sur lequel il réside, ou au nom de fichier relatif. Ce dernier est résolu par DB2 Extensions à l'aide des variables d'environnement (reportez-vous à la section Utilisation des variables d'environnement pour la résolution des noms de fichiers). |
histogram, histogramcolor ou QbColorHistogramFeatureClass | histogram=<(val_hist, val_rouge, val_vert,
val_bleu>), ...
Chaque valeur de couleur d'histogramme est précisée dans une clause identifiant le pourcentage (de 1 à 100) de cette couleur dans l'histogramme (valeur_hist), ainsi que la valeur de rouge (val_rouge), de vert (val_vert) et de bleu (val_bleu) pour cette couleur. file=<empl_fichier, nom_fichier> Empl_fichier correspond à l'emplacement du fichier du serveur. nom_fichier, correspond au chemin d'accès complet du fichier, dans le format convenant au système sur lequel il réside, ou au nom de fichier relatif. Ce dernier est résolu par DB2 Extensions à l'aide des variables d'environnement. |
draw, positional ou QbDrawFeatureClass | file=<empl_fichier, nom_fichier>
handle=<descripteur_image> Empl_fichier correspond à l'emplacement du fichier du serveur. nom_fichier, correspond au chemin d'accès complet du fichier, dans le format convenant au système sur lequel il réside, ou au nom de fichier relatif. Ce dernier est résolu par DB2 Extensions à l'aide des variables d'environnement. |
texture ou QbTextureFeatureClass | file=<empl_fichier, nom_fichier>
handle=<descripteur_image> Empl_fichier correspond à l'emplacement du fichier du serveur. nom_fichier, correspond au chemin d'accès complet du fichier, dans le format convenant au système sur lequel il réside, ou au nom de fichier relatif. Ce dernier est résolu par DB2 Extensions à l'aide des variables d'environnement. |
Lorsque vous spécifiez de nombreuses caractéristiques dans une requête, vous pouvez également affecter un poids à une ou plusieurs d'entre elles. Celui-ci indique l'importance accordée par l'extension Image à la caractéristique concernée lors du calcul de scores de similarité et du renvoi des résultats d'une requête par contenu d'image. L'importance de la caractéristique au sein de la requête est proportionnelle à son poids. Celui-ci est exprimé sous la forme d'un nombre réel supérieur à 0.0, par exemple, 2.5 ou 10.0. Si vous n'affectez pas de poids à une caractéristique dans une chaîne de requête, l'extension Image attribue la valeur par défaut correspondante. Il est inutile d'affecter un poids à une caractéristique si la chaîne de requête n'en contient qu'une seule. (Dans ce cas, tout le poids de la requête porte sur cette caractéristique.)
Le poids d'une caractéristique est calculé par rapport aux autres caractéristiques spécifiées dans la requête. Par exemple, supposons que vous indiquiez les caractéristiques de couleur moyenne et de texture dans une chaîne de requête et que vous spécifiez également une valeur de poids de 2.0 pour la couleur moyenne. Cela indique à l'extension Image d'attribuer deux fois plus d'importance à la valeur de la couleur moyenne qu'à celle de la texture.
La chaîne de requête suivante précise une couleur moyenne de rouge :
averageColor color=<255, 0, 0>
La chaîne de requête suivante spécifie un histogramme composé de 10% de rouge, 50% de vert et 40% de bleu :
histogram histogram=<(10, 255, 0, 0), (50, 0, 255, 0), (40, 0, 0, 255)>
La chaîne de requête suivante spécifie une valeur de couleur moyenne et une valeur de texture. La valeur de texture est fournie par une image contenue dans un fichier serveur. Le poids de la texture est le double de celui de la couleur moyenne :
averageColor color=<30, 200, 25> and texture file=<server, "\patterns\pattern7.gif"> weight=2.0