图像相似度算法_第1页
图像相似度算法_第2页
图像相似度算法_第3页
图像相似度算法_第4页
图像相似度算法_第5页
已阅读5页,还剩3页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第第页图像相似度算法一种图像相像度匹配的算法,

1、图片大小规格化

为了比较两个图像,应当使其大小完全全都,这里可以设置为两个图片中较大的那个大小,长宽。

functionResize(constSource:TBitmap;varDest:TBitmap):Boolean;

begin

ifnotAssigned(Dest)then

Dest:=TBitmap.Create;

Dest.pi*elformat:=pf24bit;

Dest.Width:=BMPWIDTH;

Dest.Height:=BMPHEIGHT;

Dest.Canvas.CopyRect(Rect(0,0,Dest.Width-1,Dest.Height-1),Source.Canvas,Rect(0,0,Source.Width-1,Source.Height-1));

end;

2、图像灰度化

图像灰度化的方法有多种,这里介绍两种。一种是绝对平均值,一种是加权平均值。其实质就是将RGB三原色的色值相加,平均后给予新值。不同的只是RGB三原色的权重不同。

绝对平均值

functionGray1(constSource:TBitmap):Boolean;

var

p:PByteArray;

w:Integer;

i,j:Integer;

begin

fori:=0toSource.Height-1do

begin

p:=Source.ScanLine[i];

forj:=0to(Source.Width-1)do

begin

w:=p[3*j]+p[3*j+1]+p[3*j+2];

w:=wdiv3;

w:=byte(w);

一种图像相像度匹配的算法,

p[3*j]:=w;

p[3*j+1]:=w;

p[3*j+2]:=w;

end;

end;

end;

加权平均值

functionTForm1.Gray2(constSource:TBitmap):Boolean;

var

p:PByteArray;

w:Integer;

i,j:Integer;

begin

fori:=0toSource.Height-1do

begin

p:=Source.ScanLine[i];

forj:=0to(Source.Width-1)do

begin

w:=(p[3*j]*28+p[3*j+1]*151+p[3*j+2]*77);

w:=wdiv3;

w:=byte(w);

p[3*j]:=w;

p[3*j+1]:=w;

p[3*j+2]:=w;

end;

end;

end;

3、抽取直方图

由于是灰度图,所以只会有256种灰度值,计算直方图

functionGetHisogram(constSource:TBitmap;varHis:TSamp):Boolean;var

i,j,c:Integer;

p:PByteArray;

一种图像相像度匹配的算法,

begin

try//取样

fori:=0to255do

His[i]:=0;

fori:=0toSource.Height-1do

begin

p:=Source.ScanLine[i];

forj:=0toSource.Width-1do

begin

c:=p^[j*3];

Inc(His[c]);

end;

end;

finally

tb.Free;

end;

end;

4、判断相像度

这里采纳的是一个公式,

直方图抽样个数。

,g,s分别为两附图片的直方图,N为

functionGetSimilar(constHisA,HisB:TSamp):Double;var

i,j:Integer;

functionDivideAbs(constNumA,NumB:Integer):Double;var

一种图像相像度匹配的算法,

Tabs:Integer;

begin

Tabs:=Abs(NumA-NumB);

ifNumA=NumBthen

Result:=NumA

else

Result:=NumB;

ifResult0then

Result:=Tabs/Result;

end;

begin

Result:=0.0;

ifLength(HisA)Length(HisB)then

E*it;

fori:=0toLength(HisA)do

begin

Result:=Result+1-DivideAbs(HisA[i],HisB[i]);end;

Result:=Result/Length(HisA);

end;

一种图像相像度匹配的算法,

1、图片大小规格化

为了比较两个图像,应当使其大小完全全都,这里可以设置为两个图片中较大的那个大小,长宽。

functionResize(constSource:TBitmap;varDest:TBitmap):Boolean;

begin

ifnotAssigned(Dest)then

Dest:=TBitmap.Create;

Dest.pi*elformat:=pf24bit;

Dest.Width:=BMPWIDTH;

Dest.Height:=BMPHEIGHT;

Dest.Canvas.CopyRect(Rect(0,0,Dest.Width-1,Dest.Height-1),Source.Canvas,Rect(0,0,Source.Width-1,Source.Height-1));

end;

2、图像灰度化

图像灰度化的方法有多种,这里介绍两种。一种是绝对平均值,一种是加权平均值。其实质就是将RGB三原色的色值相加,平均后给予新值。不同的只是RGB三原色的权重不同。

绝对平均值

functionGray1(constSource:TBitmap):Boolean;

var

p:PByteArray;

w:Integer;

i,j:Integer;

begin

fori:=0toSource.Height-1do

温馨提示

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

评论

0/150

提交评论