资源描述
安徽建筑大学毕业设计(论文)
Web图像检索系统原型设计和实现
摘要
计算机处理能力的日益增强,因特网技术的广泛普及和网络带宽不断提高,大量的图像信息不断产生,如何从这些海量图像数据中搜索人们感兴趣并有效利用这些图像,成为迫切需要解决的问题。
本设计介绍了在web中检索图像的基本概念和常用的重要技术,并简要阐述了它们的基本概念、原理,说明了目前这一领域的发展现状。本文介绍了图像的特征:颜色特征、纹理特征和形状特征,和以图像内容特征为基础的Web图检索原理。最后以基于内容的图像检索为重点,利用Matlab对Web图像检索系统进行了模拟和验证。
我的工作是Web图像检索系统原型的架构和检索界面的设计和实现,利用matlab gui设计系统界面以实现图像的检索功能。
关键字:Web图象检索,特征提取,Matlab GUI
28
Abstract
With the capacity of computer increasing , Internet technology is popular more and more.A mass of image data informations is produced constantly,so image retrieval becomes a urgent problem.
Firstly, the basic concept of Web image retrieval and some technologys are introduced in the paper; secondly we describes the image features: color feature,texton feafure,shape feafure. the theory of Web image retrieval is based on these content features. Meanwhile ,several important image retrieval algorithms are introduced and compared in the paper. Finally, we made experiment on Matlab for web image retrieval .
I am responsible for building the system prototyp frame for Web image retrieval, and completing the interface of Web image retrieval on Matlab GUI.
Keywords: Web image retrieval, feature extraction, Matlab GUI
目录
1 绪 论 1
1.1 系统背景和意义 1
1.2 系统概述 2
1.3 我所做的工作 2
2 系统分析 3
2.1系统需求分析 3
2.2技术平台 3
2.2.1 matlab简介 3
2.2.2 matlab gui 4
3 web图像检索原理 5
3.1 基于文本的图像搜索 5
3.2 基于内容的图像搜索 5
3.2.1 常用的图像特征 5
3.2.2 体系结构 7
3.2.3 查询模块 8
3.2.4 特征提取模块 8
3.2.5 匹配模块 8
4 界面设计及Matlab GUI编程 10
4.1 用GUIDE编辑器简历图形界面 10
4.2 菜单条(Menu Bar) 12
4.3 弹出框(Popupmenu) 13
4.4 列表框(Listbox) 14
4.5 按钮(Push Button) 16
4.5.1选择图片 16
4.5.2导入数据库 18
4.5.3查询 20
5 系统测试 23
5.1 input to database 23
5.2 search database 24
5.3 测试结果 27
6 总结 28
致 谢 28
参考文献 29
Web图像检索系统原型设计和实现
--Web图像检索系统原型的架构和检索界面的设计和实现
1 绪 论
随着互联网技术的发展,网页包含了更多的非文字信息,如声音、图像、视频。基于图像内容的检索已成为互联网检索技术研究的热点。图像的检索在当今这个网络处处有的社会里越发的显现出了它的价值。文字搜索引擎尚且不够智能,如何能够实现图像的检索呢,看起来不可能实现的认为在工程师和科学家的努力下渐渐变得可能。
试想,当手头有一张照片,却不知道这张照片出自何处,用文字搜索显然不是明智之举,尤其在这个文字搜索以关键字为基础的情况下,更加无法得到我们想要的结果。这个时候,一旦存在一种搜索方式,可以以图片为元素进行检索,该是多么方便的一件事。
世界上进行此项研究的部门有很多,本课题的目的便是对此进行一个浅显的探索学习。本课题侧重web图像检索方法的研究,拟建立Web图像检索系统原型,实现基于图像内容的检索。
1.1 系统背景和意义
数字图像作为多媒体信息的一个重要组成部分,生动形象、易于理解,使得图像成为在商业、教育、科技等多方面广泛应用的媒体形式之一,无论是对于专业的设计者,还是一般的网友,挖掘网络素材早已成为一种特别的需求。 数字图像的应用日益广泛,要求快捷的图像检索工具和基于图像过滤的防火墙,因此提出开发图像搜索引擎和基于图像过滤机制的防火墙,而图像检索技术正是这两项产品的核心技术。 虽然从20世纪70以来就开始了图像检索技术的研究,但随着Internet应用的不断深入,计算机网络的飞速发展,数字图像的来源也在不断扩大,图像数据的种类和数量也与日俱增。如何有效地从如此海量的图像数据中检索出你所需,是一个有理论意义和现实意义的研究课题。而事实同样也表明,图像检索技术已经是国内外的研究热点。
1.2 系统概述
本课题拟选用matlab环境,选用经典的Web图像数据库,研究并实现基于图像内容的检索方法。
本课题为Web图像检索系统原型设计和实现,本课题下有三个子课题,分别为:
1、Web图像检索系统原型的架构和检索界面的设计和实现:
设计Web图像检索系统原型的架构,模拟实现指定web图库的地址和指定待检索图像,根据指定待检索的图像检索该地址的所有图像,并显示检索结果。
2、基于颜色特征的图像检索研究:
该子课题研究图像的颜色特征,和颜色特征的表示,及相应的匹配算法。拟在拟用Matlab平台,实现基于图像直方图的匹配检索。
3、基于纹理特征的图像检索研究;
该子课题研究图像的纹理特征,和纹理特征的表示,及相应的匹配算法。拟在拟用Matlab平台,实现基于图像局部二值模式的匹配检索。
最后希望达成的目的为,在完备的图片检索界面下,配合两种图像检索算法,可以在输入一张图片后,在当前文件夹下,按序寻找排列出与之相似的十张图片。
由此可知,本课题主要还是一个研究学习性为主的课题,通过matlab来模拟实现一个简单的图像检索系统,从而达到在本地文件夹下实现检索相似图片的目的。
1.3 我所做的工作
我负责的工作是web图像检索系统原型的架构和检索查询和结果显示界面的设计和开发。
系统的架构是构造web检索系统的原型和检索流程,为颜色和纹理检索算法实现提供统一的接口和检索结果反馈。提供友好的用户界面,一目了然,简洁并且能够有效的实现web图像检索的基本功能。
2 系统分析
2.1 系统需求分析
当今是一个互联网高速发展的社会,在这样的情形下,搜索引擎就显得尤为重要。不管是国内的百度,还是国外的google,都是靠搜索引擎起家的公司。但是目前的搜索引擎主要还是以文字搜索为主要方式,在这样的方式之下, 必定存在极大的局限性,况且,如今的文字搜索不够智能,只能以关键字为线索进行搜索,这样的搜索方式,极大的限制了人们的需求,和几年前相比,没有任何实质性的突破。在这样的情况下,需要一种全新的搜索方式来满足人们更多的需求,于是,图片检索这些年来在国际上非常流行,有很多部门和学校都在进行此项工作的研究,意义重大,在未来的应用前景广泛,甚至是一种革命性的转变,能够彻底的改变人们的生活。
功能需求:
本系统原型的人机接口交互部分主要要实现的是两个功能。一个功能将指定文件夹下的所有文件名导入的一个文本文档中,限定检索的范围,可模拟在实际网络检索中一个物理点。另外一个功能实现web图像检索流程:选择要检索的图片,然后在指定的检索范围里寻找最相似的图片,然后呈现出来。
2.2 技术平台
本系统采用matlab编程实现,图形界面采用matlab gui编程,下面将简要介绍一下matlab。
2.2.1 matlab简介
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple、MathCAD并称为四大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
Matlab还具备以下优势特点:
1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2、具有完备的图形处理功能,实现计算结果和编程的可视化;
3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
正是基于这些,本系统选用matlab来实现。
2.2.2 matlab gui
系统主要是在Matlab下进行编程。而我的工作主要是用Matlab gui来完成的。
图形化用户界面(Graphical User Interfaces,即GUI)是一种图形化的沟通界面,通过此界面可以很方便的达成一些特定控制的操作,而这些界面又是由按钮,窗口,工具栏,键盘操作等对象所构成的,以方便借助这些界面调用MATLAB来进行运算处理操作。GUI是未来的趋势,因为人类对于图形辨识的能力远超过其他表达方式,因此借助GUI程序能够设计出专属某个主题的图形化界面,是初次接触的使用者也能够快速且容易的上手。另外,MATLAB具有高度的数学运算能力与各种领域的工具箱,若能结合GUI相信所完成的程序会非常实用。
结合以上Matlab gui的诸多优点,可以知道以此来设计web图像检索系统是非常适合的。Gui界面很清晰方便,可以很好的设计出友好简洁的用户界面,高效且方便用户使用。并且matlab gui的变成想对自由宽松,更加适合初学者。
综合上述分析,利用matlab开发此系统是可行的,而且是很有意义的。
3 web图像检索
Web图像检索的方法主要为两种,一种为基于文本的图像检索,一种为基于内容的图像检索,本系统主要采用基于内容的图像检索。
3.1 基于文本的图像检索
基于文本的图像检索方法诞生于二十世纪70年代,是图像检索方法的常用技术之一,它利用人工进行图像语义识别,并用相应的文本关键词对图像语义进行注解以实现图像的检索。由于语言文字是人们进行语义表达最直观和熟知的手段,也是检索技术中广泛采用的检索方法,故通过其实现的图像检索使得检索形式较为简便、且由于采用人工注解图像语义,有效跨越了“语义鸿沟”,从一定意义上说是基于语义的图像检索方法。在图像规模较小的初期应用中,这种方法有效地满足了图像的检索需求,然而,随着图像检索应用的不断深入,利用人工提取图像语义标识以实现检索的方法存在着一些明显的缺陷:
1、人工提取图像语义标识需要耗费大量的人力资源,尤其面对呈指数级增长态势的图像资源,完全依赖人工工作存在着明显的效率问题;
2、人工实现图像语义标识的提取过程存在着主观片面性,图像的语义丰富,充分理解图像语义依赖于不同的知识结构及理解能力,不同人对其理解存在着主观差异性。
因此,面对不断增长的图像资源检索需求,如何高效、客观地实现图像语义的识别是影响基于文本的图像检索方法发展的瓶颈技术。
3.2 基于内容的图像检索
本系统主要采用基于内容的图像检索。
3.2.1 常用的图像特征
由于本系统主要采用的是纹理特征及颜色特征。以下会扼要介绍这两种及其他几种图像特征。
1、颜色特征:颜色信息是在图像检索中使用最广泛的底层特征,它和图像中的物体和场景有着紧密的联系。与其他底层特征相比,颜色特征对于图像缩放、旋转、遮挡及其他形变有更强的鲁棒性。最早采用颜色特征进行图像检索的是由Swain和Ballard提出的基于颜色直方图的检索方法。图像颜色特征的表达涉及如下几个方面的问题:一是选择一个合适的颜色空间;二是将颜色特征量化为向量形式;三是定义相似度(距离)标准用来度量不同图像之间在颜色上的相似性。由于颜色特征和其他特征相比具有一定的稳定性,不随物体的平移、旋转、观察距离的变化而变化,对于图像缩放、旋转、遮挡及其他形变有着更强的变化。
2、纹理特征:纹理也是图像的一个重要属性。航空、遥感照片、织物设计图案、复杂的自然风景以及动植物都有纹理。纹理特征有两个要素构成:(1)纹理基元;(2)基元的排列。纹理基元是一种或多种图像基元的组合,有一定的形状和大小。纹理由纹理基元排列而成,。基元排列的疏密程度、周期性、方向性的不同,能使图像的外观产生极大地改变。纹理可以认为是灰度(颜色)在空间以一定的形式变化而产生的图案,是真实图像区域固有的特征之一。类似于颜色,纹理也常取决于人们的感知,一般说来可以认为纹理是由许多相似接近的、互相编织的元素构成,所以直观来说纹理描述可提供图像区域的平滑、稀疏、规则性等特性。
3、形状特征:形状特征对于人类说是识别物体的主要信息,是一种重要的图像内容表达手段。按表达的形式分,可分为基于边界的和基于区域的两种类型。
边界特征包括:线型形状,多边形逼近,有限元模型和傅里叶描绘子。区域特征主要有矩不变量等。形状特征是比颜色和纹理更高层一些的特征,对形状的表达比对颜色或纹理的表达从本质上要复杂的多,图像的形状信息不随图像颜色等特征的变化而变化,是物体稳定的特征。特别对于图形,形状是它唯一重要的特征。
形状特征的各种表示方法中一个重要标准是它必须具有仿射不变性,即相对于旋转平移和尺度变换具有不变性。通常来说,形状特征有两种表示方法,一种是基于边界轮廓特征(contour-based)的,包括:傅立叶形状描述子、小波轮廓描述子、边界直方图、链编码、曲率尺度空间等,其中最典型的方法为傅立叶形状描述子。一种是基于区域特征(region-based)的,如不变矩。前者只用到物体的外边界,而后者则关系到整个对象所在的区域。
4、语义特征:图像的视觉特征在一定程度上能代表图像包含的信息,但事实上,人们判断图像的相似性并非仅仅建立在视觉特征的相似性上.更多的状况下,用户主要根据返回图像的含义,而不是颜色、纹理、形状等特征,来判别图像满足自己需要的程度.这些图像的含义就是图像的高层语义特征,它包含了人对图像内容的理解.基于语义的图像检索的目的,就是要使计算机检索图像的能力达到人的理解水平.在一般的图像内容层次模型中,语义位于最高层;其与第2层和第3层之间的差别被许多学者称为“语义鸿沟”,语义鸿沟的存在是目前CBIR系统还难以被普通用户接受的原因。在某些狭窄的专业领域,比如指纹识别和医学图像检索中,将图像低层特征和高层语义建立某种联系是可能的,但是在广泛领域内,低层视觉特征与高层语义之间并没有很直接的联系。
采用颜色、纹理、形状等底层特征对图像进行的描述往往与人对图像的描述存在较大的差异,直接利用这些特征作为检索依据常得不到令人满意的结果。解决这类问题的办法是采用高层的特征即“语义特征”进行检索。由于它是从人类视觉理解出发,着眼于提取图像中符合人类视觉的概念。基于语义的检索技术难度很大,是图像检索领域的研究方向。
在语义级图像检索技术中,关键是实现语义的提取。这就要解决两个问题:语义特征具有“模糊性”,因此要提取图像的语义特征就必须解决特征的“模糊化”问题;语义特征与人的视觉理解紧密相关,所以在检索中要融入人的视觉感知,在“理解”图像的基础上检索图像。
虽然采用语义内容进行查询是最符合人的使用要求的方式,也是理想的检索
方式,但是就当前的计算机和图像理解的发展水平来看,这种完全智能化的检索方法前正处于研究阶段,与实际应用还有较大的距离。
3.2.2 体系结构
本设计以matlab为开发环境实现了一个基于内容的图像检索原型系统如图3-1所示,主要用于验证各种特征提取算法的可行性和有效性。首先对用户提交的示例图像进行特征提取,然后与图像特征库中的特征值进行匹配,最后将检索结果返回给用户。系统的关键模块包括查询模块、特征提取模块、匹配模块,实际应用中每个模块都有许多具体技术可以采用,下面主要讨论各模块的功能及相关实现技术。
用户界面
图像输入模块
特征提取模块
查询接口模块
图像显示模块
检索匹配模块
图像特征库
图3-1 基于内容的图像检索系统结构
3.2.3 查询模块
查询模块用于提供前端界面的有关查询接口,用户通过查询界面访问图像库从而找到满足要求的图像,检索结果也是通过这个接口返回给用户。本系统主要采用示例图像方式,即用户给定一幅与期望图像类似的图像作为查询图像。
3.2.4特征提取模块
基于内容的图像检索首先要解决的问题就是图像内容的分析和表示。图像内容的分析和表示指的是通过对图像像素的颜色属性以及像素间的相互关系进行分析,从而得到一系列数字或者描述特征,这些特征可以在一定程度下描述图像本身的内容。然后,利用这些特征可以对图像建立索引,从而达到图像检索的目的。因此,图像内容的表示问题本质上是一个图像特征的提取问题。从广义上来讲,图像的特征包括图像的底层特征和高层语义特征。底层特征用来描述图像共有的特征,主要包括颜色、纹理、形状等;后者则用来描述图像自身的内容信息,比较抽象。本设计主要基于图像底层特征的特征提取。
系统中的特征提取模块负责图像处理工作,具体实现CBIR系统中支持的各种特征提取算法,从而能从图像中提取相应的特征信息。
3.2.5匹配模块
查询模块将用户的查询请求通过特征提取模块转换为查询特征向量,然后调用匹配模块计算特征库中的每一个特征与待查图像特征的相似度,并按相似程度由大到小排列返回给用户所需要的图像。
基于内容的图像检索系统所使用的匹配不是精确匹配而是一种基于相似的检索,它关心的是排序,选择合适的相似性度量函数很重要。目前研究图像内容的相似性度量是指图像特征间的相似性,是图像检索研究的重要组成部分。相似性度量方法的好坏影响到图像检索的性能;而相似性度量的计算复杂性影响到图像检索的用户响应时间。一般假设图像特征矢量是距离空间中的元素(其中的元素称为点),通过计算两点之间的接近程度来衡量图像特征之间的相似度。
4 界面设计及MATLAB GUI编程
本章主要介绍该系统图形界面及其gui编程实现。
4.1 用GUIDE编辑器建立图形界面
建立gui,用guide编辑器进行编辑。为了更好的实现功能,并且为用户提供良好的用户界面,需要设计一个简洁而充实的界面,界面设计如图4-1所示。
图4-1 主界面
以下是该界面的初始化程序:
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Demo_OpeningFcn, ...
'gui_OutputFcn', @Demo_OutputFcn, ...
'gui_LayoutFcn', [], ...
'gui_Callback', []);
if nargin == 0 % LAUNCH GUI
initial_dir = pwd;
% Open FIG-file
fig = openfig(mfilename,'reuse'); % Generate a structure of handles to pass to
callbacks, and store it.
handles = guihandles(fig);
guidata(fig, handles);
%disp('populate1!!');
% Populate the listbox
load_listbox(initial_dir,handles)
% Return figure handle as first output argument
if nargout > 0
varargout{1} = fig;
end
elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK
try
[varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard
catch
disp(lasterr);
end
end
4.2 菜单条(Menu Bar)
由图4-1可知,这个主界面包含了一个菜单栏,文件(file)项,选项(option)项,帮助(help)项。由于本系统旨在模拟实现web图像检索的基本功能,因此file以及help项并没有进行特别的制作。而option选项则是菜单栏的重点,option选项下有两个子选项,如图4-2所示。
图4-2 option子选项
Option有两个子选项,其一为input to database,该模式下实现的功能主要为将本地文件夹下的所有文件的文件名导入到一个名为database的TXT文档里。另外一个选项是search databse。这个选项所实现的功能则是整个系统的核心部分,在该模块下,可以实现将本地文件夹下与输入图片相似的十张图片按高低顺序排列呈现出来。
以下为input to database子选项的代码部分:
function inputDatabase_Callback(hObject, eventdata, handles)
% hObject handle to CloseMenuItem (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Some code to input the selected image to the database...
set(handles.input, 'Checked', 'On');
set(handles.search, 'Checked', 'Off');
set(handles.listbox1, 'Enable', 'On');
set(handles.text1, 'Enable', 'On');
set(handles.popupmenu, 'Enable', 'On');
handles.option = 'input'; % This means that the option is to "input to
database"...
guidata(hObject, handles)
以下为search database部分的程序代码:
function searchDatabase_Callback(hObject, eventdata, handles)
% hObject handle to CloseMenuItem (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Some code to search the database for the selected image...
set(handles.input, 'Checked', 'Off');
set(handles.search, 'Checked', 'On');
set(handles.listbox1, 'Enable', 'On');
set(handles.text1, 'Enable', 'On');
set(handles.popupmenu, 'Enable', 'On');
handles.option = 'search'; % This means that the option is to "search database"...
guidata(hObject, handles)
4.3 弹出框(Popupmenu)
弹出框的目的主要是为了选择图片库所在路径。弹出框如图4-3所示。
4-3 弹出框(popumenu)
以下为弹出框(popumenu)的代码部分:
function popupmenu_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenu contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu
val = get(hObject,'Value');
str = get(hObject, 'String');
cd(str{val});
load_listbox(pwd, handles)
该段代码让弹出框中可以显示demo文件所在的本地文件夹的路径。
4.4 列表框(Listbox)
列表框需要做的事情就是将弹出框显示的本地文件夹路径下的文件全部显示出来。并且可以方便的拖动选择,更好的为图像检索服务。列表框如图4-4所示。
图4-4 列表框(listbox)
以下两段为列表框的相关代码,实现的功能各有差异。其中第一段如下:
function varargout = listbox1_Callback(h, eventdata, handles)
% hObject handle to listbox1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns listbox1 contents as cell array
% contents{get(hObject,'Value')} returns selected item from listbox1
mouse_event = get(handles.figure1,'SelectionType');
index_selected = get(handles.listbox1,'Value');
file_list = get(handles.listbox1,'String');
filename = file_list{index_selected};
if strcmp(mouse_event,'normal')
if ~handles.is_dir(handles.sorted_index(index_selected))
[newpath, name, ext, ver] = fileparts(filename);
switch ext
case '.BMP'
set(handles.selectButton, 'Enable', 'On');
case '.bmp'
set(handles.selectButton, 'Enable', 'On');
case '.tiff'
set(handles.selectButton, 'Enable', 'On');
otherwise
set(handles.selectButton, 'Enable', 'Off');
end
end
end
if strcmp(mouse_event,'open')
if handles.is_dir(handles.sorted_index(index_selected))
cd (filename)
load_listbox(pwd,handles)
end
以上这段代码实现的主要是在点击选择扩展名为tiff以及bmp的文件时,可以对按钮(Push Button)进行操作。从而进行图片的查看及检索。
以下是另外一段代码:
function load_listbox(dir_path,handles)
cd (dir_path)
dir_struct = dir(dir_path);
[sorted_names,sorted_index] = sortrows({dir_struct.name}');
handles.file_names = sorted_names;
handles.is_dir = [dir_struct.isdir];
handles.sorted_index = [sorted_index];
guidata(handles.figure1,handles)
set(handles.listbox1,'String',handles.file_names,...
'Value',1)
set(handles.text1,'String',pwd)
以上代码主要是规定了该列表框中显示读取的是弹出框本地文件夹下的各个文件的文件名。
4.5 按钮(Push Button)
本系统界面下共有三个按钮,分别实现不同的功能,分别为选择图片按钮,导入数据库按钮,查询按钮。以下将详细的介绍这三个按钮。
4.5.1 选择图片
该按钮实现的功能是在选择好右边列表框内相应的可以读取的文件格式的图片时,进行图片的读取。按下按钮后,会显示出该图片的纹理特征图以及颜色直方图。选择按钮如图4-5所示。
图4-5 选择图片按钮
该按钮的程序代码段如下所示:
function selectButton_Callback(hObject, eventdata, handles)
% hObject handle to selectButton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
index_selected = get(handles.listbox1,'Value');
file_list = get(handles.listbox1,'String');
filename = file_list{index_selected};
[newpath,name,ext,ver] = fileparts(filename);
handles.filename = strcat(name,ext);
% [handles.queryx, handles.querymap] = imread(filename);
handles.queryx = imread(filename);
%read the image file.
figure
subplot(1,2,1)
% imshow(handles.queryx, handles.querymap); %This displays the image.
imshow(handles.queryx);
subplot(1,2,2)
% imhist(handles.queryx, handles.querymap);
展开阅读全文