大连理工大学数字图像处理 实验报告4_第1页
大连理工大学数字图像处理 实验报告4_第2页
大连理工大学数字图像处理 实验报告4_第3页
大连理工大学数字图像处理 实验报告4_第4页
大连理工大学数字图像处理 实验报告4_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大连理工大学实验报告学院(系):电信学部专业:电子信息工程班级:电子1102姓名:陈柯锦学号:201181442组:___实验时间:实验室:实验台:实验名称基于边缘直方图的图像检索实验目的和要求掌握用matlab进行图像检索的方法。实验原理和内容通常情况下,人类可以在只用图像的轮廓而不借助图像的颜色以及纹理信息的情况下就可以对一幅图像中的物体进行分类和识别。因而,研究图像轮廓信息的表达方式是十分必要的。1.EHD描述子边缘直方图(EHD)描述子是MPEG-7标准中提出的一种边缘描述子,它具有描述图像亮度变化的方向和频率的能力。其具体算法原理如下。(1)对图像分块当给定一张图像时,不重叠地将其分成4*4的子图,且每一子图继续分成若干不重叠的方形子块。在这一过程中,不论图像的大小,均将每一子图划分成数量一定的子块。这样做的目的是去除图像的大小(即分辨率)对特征的影响。通常情况下,每一子图中子块的数量是2的倍数,因而在某些情况下可能要舍弃边缘的像素点以满足条件。(2)判断每一子块是否包含边缘当给定图像子块之后,若要判断该子块中是否包含边缘特征,一种简单的办法是对图像在空域利用滤波器进行滤波。在EHD特征中,统计以下五种形式的边缘特征:垂直(0°)、水平(90°)、45毒角、135°角以及非方向性边缘。如图1所示。(3)统计边缘信息通过以上步骤,可以判断出图像子块中是否包含边缘信息,下面要对这些边缘信息做以统计。在前面提到了在EHD描述子中将图像划分成4×4的16个子图,在这里对每一子图统计5个方向上各自包含的子块的个数,从而构成一个5维的向量。接着,对该向量进行归一化,即对向量的每一维均除以该子图中子块的数量。从而,一张图像便可以由一个80维的向量表示。到这里,EHD特征的基本生成过程已经完毕。三、主要仪器设备装有MATLAB的电脑。四、实验步骤完成基于EHD的图像检索。实验数据记录和处理程序:clc,clearallfv=[1-11-1];fh=[11-1-1];fd45=[sqrt(2)00-sqrt(2)];fd135=[0sqrt(2)-sqrt(2)0];fnd=[2-2-22];fv_th=30;fh_th=30;fd45_th=30;fd135_th=30;fnd_th=30;%cd('d:\MATLAB7\work\pictures');%apath=dir;%name=apath(3,1).name;%以下对目标图片进行特征分析mypic=imread('55.jpg');mypic=double(rgb2gray(mypic));[a,b]=size(mypic);;a=floor(a/4);b=floor(b/4);fori=0:3forj=0:3mypic_part=mypic(i*a+1:i*a+a,j*b+1:j*b+b);m1=sum(sum(mypic_part(1:floor(a/2),1:floor(b/2))))/(a*b/4);m2=sum(sum(mypic_part(1:floor(a/2),floor(b/2)+1:b)))/(a*b/4);m3=sum(sum(mypic_part(floor(a/2)+1:a,1:floor(b/2))))/(a*b/4);m4=sum(sum(mypic_part(floor(a/2)+1:a,floor(b/2)+1:b)))/(a*b/4);mypic_mat(4*i+j+1,1)=([m1m2m3m4]*fv')>fv_th;mypic_mat(4*i+j+1,2)=([m1m2m3m4]*fh')>fh_th;mypic_mat(4*i+j+1,3)=([m1m2m3m4]*fd45')>fd45_th;mypic_mat(4*i+j+1,4)=([m1m2m3m4]*fd135')>fd135_th;mypic_mat(4*i+j+1,5)=([m1m2m3m4]*fnd')>fnd_th;endendmypic_mat=double(mypic_mat);%以上对目标图片特征提取完毕%以下对库中图片分别进行计算cd('d:\MATLAB7\work\pictures');apath=dir;fork=3:62name=apath(k,1).name;pic=imread(name);pic=double(rgb2gray(pic));[a,b]=size(pic);;a=floor(a/4);b=floor(b/4);fori=0:3forj=0:3pic_part=pic(i*a+1:i*a+a,j*b+1:j*b+b);m1=sum(sum(pic_part(1:floor(a/2),1:floor(b/2))))/(a*b/4);m2=sum(sum(pic_part(1:floor(a/2),floor(b/2)+1:b)))/(a*b/4);m3=sum(sum(pic_part(floor(a/2)+1:a,1:floor(b/2))))/(a*b/4);m4=sum(sum(pic_part(floor(a/2)+1:a,floor(b/2)+1:b)))/(a*b/4);pic_mat(4*i+j+1,1)=([m1m2m3m4]*fv')>fv_th;pic_mat(4*i+j+1,2)=([m1m2m3m4]*fh')>fh_th;pic_mat(4*i+j+1,3)=([m1m2m3m4]*fd45')>fd45_th;pic_mat(4*i+j+1,4)=([m1m2m3m4]*fd135')>fd135_th;pic_mat(4*i+j+1,5)=([m1m2m3m4]*fnd')>fnd_th;endendpic_mat=double(pic_mat);result(k-2)=sqrt(sum(sum((mypic_mat-pic_mat).^2)));end%以上对库中所有图片特征提取结束min1=find(result==min(result))+2;if(length(min1)>1)min1=min1(1);endresult(min1-2)=100000;min2=find(result==min(result))+2;if(length(min2)>1)min2=min2(1);endresult(min2-2)=100000;min3=find(result==min(result))+2;if(length(min3)>1)min3=min3(1);endsubplot(2,2,1)imshow(uint8(mypic))title('待检索图像')cd('d:\MATLAB7\work\pictures');apath=dir;subplot(2,2,2)imshow(i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论