可使用查询字符串来标识要查询的特性、特性值和特性权重。查询字符串是格式为 feature_name value 的字符串, 其中 feature_name 是 QBIC 特性名, 而 value 是与特性相关联的值。
可在一个查询中指定多个特性。然后,对每个特性指定一对特性名-值,如特性值中所述。各对之间用子句 AND 分隔。当在一个查询中指定多个特性时,还可对一个或多个特性指定权重, 如 特性权重 中所述。这样,查询字符串就具有格式 feature_name value weight, 其中 weight 是对该特性指定的权重。
Image Extender 提供了使用查询字符串的一个 API (QbQueryStringSearch) 和 两个 UDF(QbScoreFromStr 和 QbScoreTBFromStr)。在发出查询时,使用适当的 API 或 UDF,并将查询字符串指定为输入参数。(有关详情,参见按图象内容发出查询。)
在查询字符串中指定查询中各个特性的特性值。
当在 DB2 命令内传送查询时, 必须遵循查询的某些命名约定才能使查询正确工作。必须将 包含空格或右尖括号 (>) 的文件名括在双引号中;其他文件名可以括在 双引号中,也可以不括在双引号中。如果使用引号来括住文件名, 则必须在每个引号前面放一个转义字符 (\)。若不在 DB2 命令内 传送查询,则无需将转义字符与引号包括在一起。
在下例中,DB2 命令中传送了查询字符串:
db2 "select image_id from table (mmdbsys.QbScoreTBFromStr ('texture file=<server,patterns/ptrn07.gif>', 'fabric', 'swatch_img', 10)) as T1"
下表列示可为每个特性指定的值:在每个特性名下面的字符串是可替代它的缩写格式。
特性名 | 值 |
---|---|
averageColor,average 或 QbColorFeatureClass | color=<Rvalue, Gvalue, Bvalue>
每个颜色值都是 0 至 255 的整数, 标识图象的红色值 (Rvalue)、绿色值 (Gvalue) 和蓝色值 (Bvalue)。 file=<file_location, filename> 对于服务器文件,file_location 是 服务器。filename 是以适合于文件所驻留的系统的格式指定的完整文件路径,或是相对文件名。DB2 Extender 使用环境变量解析相对文件名(参见如何使用环境变量来解析文件名)。 |
histogram,histogramcolor 或 QbColorHistogramFeatureClass | histogram=<(hist_value, Rvalue, Gvalue, Bvalue>), ...
每个直方图颜色值都在子句中指定, 子句标识该颜色在直方图中的百分比(1 至 100) (hist_value),以及该颜色的红色值 (Rvalue)、 绿色值 (Gvalue) 和蓝色值 (Bvalue)。 file=<file_location, filename> 对于服务器文件,file_location 是 服务器。filename 是以适合于文件所驻留的系统的格式指定的完整文件路径,或是相对文件名。DB2 Extender 使用环境变量解析相对文件名。 |
draw,positional 或 QbDrawFeatureClass | file=<file_location, filename>
handle=<image_handle> 对于服务器文件,file_location 是 服务器。filename 是以适合于文件所驻留的系统的格式指定的完整文件路径,或是相对文件名。DB2 Extender 使用环境变量解析相对文件名。 |
纹理或 QbTextureFeatureClass | file=<file_location, filename>
handle=<image_handle> 对于服务器文件,file_location 是 服务器。filename 是以适合于文件所驻留的系统的格式指定的完整文件路径,或是相对文件名。DB2 Extender 使用环境变量解析相对文件名。 |
若在查询字符串中指定多个特性,则还可对其中一个或多个特性指定权重。特性权重指示,当 Image Extender 计算类似性得分并返回“按图象内容查询” 的结果时,它对特性的重视程度。对特性指定的权重越高,在查询中对该特性越重视。权重是大于 0.0 的实数,如 2.5 或 10.0。若不在查询字符串中指定权重,则 Image Extender 将使用特性的缺省权重。若该特性是查询字符串中指定的唯一特性, 则指定权重并无意义。(该特性将总是具有查询中的全部权重。)
特性的权重是相对于查询中指定的其他特性而言的。例如,假设在查询字符串中指定平均颜色和纹理特性, 并对平均颜色指定权重值 2.0。这告诉 Image Extender 对平均颜色值的重视程度是纹理值的两倍。
以下查询字符串指定红色平均颜色:
averageColor color=<255, 0, 0>
以下查询字符串指定由 10% 红色、50% 绿色和 40% 蓝色组成的直方图:
histogram histogram=<(10, 255, 0, 0), (50, 0, 255, 0), (40, 0, 0, 255)>
以下查询字符串指定平均颜色值和纹理值。纹理值是由服务器文件中的图象提供的。纹理的权重是平均颜色的两倍:
averageColor color=<30, 200, 25> and texture file=<server, "\patterns\pattern7.gif"> weight=2.0