Utilisez dans une instruction SQL l'une des quatre fonctions utilisateur fournies par l'extension Image pour extraire
le score d'une image cataloguée dans une colonne de table. Il s'agit d'une valeur en virgule flottante, double précision, allant de 0.0 à une valeur proche de l'infini. Plus cette valeur est faible, plus les valeurs des caractéristiques de l'image sont proches de celles spécifiées dans la requête. La valeur 0.0 indique que l'image correspond exactement.
Ces fonctions utilisateur (UDF) sont les suivantes :
Recommandation : Utilisez la fonction UDF QbScoreFromStr pour extraire le score d'une seule image cataloguée. Utilisez la fonction UDF QbScoreTBFromStr pour extraire le score de plusieurs images cataloguées dans une colonne de table.
Utilisez la fonction UDF QbScoreFromStr pour extraire le score d'une seule image cataloguée dans une colonne de table. Indiquez une chaîne de requête comme données d'entrée pour la fonction UDF QbScoreFromStr. Si vous utilisez la fonction UDF QbScoreFromName, indiquez le nom d'un objet de requête comme données d'entrée pour la fonction UDF QbScoreFromName. Pour toutes deux, vous devez également spécifier la colonne de table contenant l'image cible.
Dans la requête suivante, la fonction UDF QbScoreFromStr permet d'extraire les images cataloguées contenues dans une colonne de table et dont le score pour la couleur moyenne est très proche du rouge.
SELECT name, description decimal (QbScoreFromStr(swatch_img, 'QbColorFeatureClass color=<255, 0, 0>'), /* chaîne de requête */ 10, 5) AS score FROM fabric /* colonne de table */ ORDER BY score
Utilisez la fonction UDF QbScoreTBFromStr pour extraire le score de plusieurs images cataloguées dans une colonne de table. Vous pouvez utiliser la fonction UDF QbScoreTBFromName si vous disposez d'une requête nommée. Elles renvoient toutes deux une table comportant deux colonnes contenant respectivement les descripteurs d'image et les scores. Les lignes de la table sont classées par ordre croissant de score. Dans la table de résultats, la colonne des descripteurs et la colonne des scores portent respectivement le nom de IMAGE_ID et SCORE.
Indiquez une chaîne de requête en tant que données d'entrée pour la fonction UDF QBScoreTBFromStr, et le nom d'un objet de requête pour la fonction QbScoreTBFromName. Pour toutes deux, vous devez également spécifier le nom de la colonne et de la table contenant les images cible. Vous pouvez aussi préciser le nombre maximal de lignes à renvoyer dans la table de résultats. Sinon, la fonction utilisateur renvoie une ligne pour chaque image cataloguée dans la colonne de table cible.
Dans la requête suivante, la fonction utilisateur QbScoreTBFromStr permet d'extraire les dix images cataloguées contenues dans une colonne de table dont la texture est la plus proche de celle d'une image d'un fichier serveur.
SELECT name, description FROM fabric WHERE CAST (swatch_img as varchar(250)) IN SELECT CAST (image_id as varchar(25)) FROM TABLE (QbScoreTBFromStr (QbTextureFeatureClass file=<server,"patterns/ptrn07.gif">' /*chaîne de requête*/ 'fabric', /* table */ 'swatch_img', /* colonne de table */ 10)) /* nombre maximal de résultats */ AS T1));