3.1系统设计思想
3.1.1图像数据库组成
图像数据库系统是在传统数据库、数字图像处理与模式识别等技术的基础上发展起来的一门新兴的综合技术。图像数据库技术一直致力于解决海量数字图像的有效存储和管理问题。图像数据库的产生拓展了传统数据库技术的应用,又为图像处理技术提供了有力的支持[4]。
3.1.2图像属性索引数据库建设
图像属性索引数据库中存放着从彩信页中获得的所有图像及其属性,以供用户查询使用。
3.1.3动态链接库(DLL)中执行函数的实现
在试验平台ImageHuntPlatform中特征生成和图像检索函数的实现,采用了动态链接库(DLL)中的执行函数。动态链接库(DLL)是用作共享函数库的可执行文件。DLL中的代码在运行时动态加载。
VisualC++中的类库MFC以3种不同的方式支持DLL的开发,即:
l)与MFC静态链接的常规DLL与MFC动态链接的常规DLL及与MFC动态链接的扩展DLL。
2)与MFC动态链接的常规DLL与MFC动态链接的常规DLL也是内部使用MFC的DLL,DLL中的导出函数可以被MFC和非MFC可执行程序调用。与前者的区别是,这种类型的DLL在建立时使用的是MFC动态链接库。导出函数使用的也是标准C接口,但必须使用宏AFx_MANAGE_STATE兀来设置MFc模块状态[5]。
3)与MFC动态链接的扩展DLL与MFC动态链接的扩展DLL是从已有的MFC来派生新的可再用类的DLL。扩展DLL在建立时使用的是MFc动态链接库。扩展DLL中的导出函数只能由动态链接MFC的MFC应用程序调用。使用扩展DLL,可以从MFC派生新的自定义类,然后提供MFC扩展版给调用DLL的应用程序。
在试验平台中,要求特征生成和图像检索函数作为DLL库的导出函数。特征生成函数的原型为voidGenerateChar(),无参数。图像检索函数的原型为B00LColorHuni(cstringUst*PositivePath,CStringUst*NagetivePath,CobArray*fsimi-larArray),其中Positivepath为正例图像的路径链表,Nagetive-Path为反例图像的路径链表,fSimilarArray为返回结果的对象链表(包括检索图像的ID、检索图像的路径和示例图像的相适度)。动态链接库的方式可采用与MFC动态链接的常规DLL或与MFC动态链接的扩展DLL。以图像检索函数为例,在试验平台中动态加载DLL库的主要代码如下:
HINSTANCE hdll;
ypedefBOOL(CALLBACK·MYPROC)(CStringLiat*,CStringList*,CobArray*);
MYPROC dllproc;
Hdll=loadLibrrary(“DLL所在路径”); //可与从Windows注册表中动态取得
If(hdll!=null)
{dllproc=(MYPROC)CetProcAddress(hdll,FunName);
If(dllproc==NULL){AfxMessageBox(“输入检索图像的函数名称有错误!”);return;}
Dllproc(…,…,…);
}
3.2系统工作流程
其主要的工作流程为:用户根据自己的需求输人所孺要的图像模型;将对象的轮廓区域从背景中区分出来;分析、提取并识别对象区域的视觉特征(颇色、形状、纹理、位置、大小、方向等),建立数据参数或语义级的文字描述;根据对象视觉特征知识库和相关文本(彩信中的相关对象名和对象特征关键词)识别对象,建立概念级的图像对象文本标注;利用对象的文本标注和视觉特征描述,实现基本对象的图像检索;将检索到的图像通过彩信群发器发送出去。具体工作流程如图l所示。
3.3应用实例
假设用户要搜索一个牡丹花的图片并且给出了关键图,根据检索结果,用户根据关键图的直方图和边缘图使用绝对值距离的方法,从图像库中检索出符合要求的图片,并从中选择满意的图片通过彩信群发器发给他的用户。其检索界面如图2所示。