基于相关系数影像匹配实习报告Word文档下载推荐.doc
- 文档编号:13166587
- 上传时间:2022-10-07
- 格式:DOC
- 页数:15
- 大小:2.69MB
基于相关系数影像匹配实习报告Word文档下载推荐.doc
《基于相关系数影像匹配实习报告Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《基于相关系数影像匹配实习报告Word文档下载推荐.doc(15页珍藏版)》请在冰豆网上搜索。
pSrcFileLeft=fopen(srcFileLeft,"
rb"
);
if(pSrcFileLeft==NULL)
{
printf("
原始左片影像打开失败\n"
returnFAILURE;
}
FILE*pSrcFileRight=NULL;
pSrcFileRight=fopen(srcFileRight,"
if(pSrcFileRight==NULL)
原始右片影像打开失败\n"
(2)确定目标窗口大小
通过老师课堂上的讲授和我们在编程过程中的不断尝试,我们默认使用的窗口的尺寸为11*11。
(3)确定目标点的位置
由前次的实习中得到左相片中的特征点作为这次实习的目标点。
(4)预测右影像搜索范围
本程序中也在左相片中计算出了特征点,然后将左右两相片中的特征点进行计算相关系数。
(5)逐窗口计算相关系数并保存相应的储存单元
将左相片中的目标点与右相片中的特征点进行相关系数的计算。
(6)比较相关系数,取最大相关系数作为匹配点
对于分别比较上一步骤中计算出的相关系数,选取出最大的一个相关系数作为匹配点。
程序操作如下:
在程序主界面中点击Extend中选取ImageMatch选项,然后进入参数设置界面。
设置读取和保存影像路径和窗口大小等参数后,点击Progress进行运算。
四、实习结果及分析
作为数据源的左右影像如些图所示:
左相片右相片
经过计算后得到的目标点左右图像分别如下所示:
左相片右相片
显示匹配点号:
通过老师得到的图片可以看出在左相片中得到的五个目标点中有四个在右相片中找到了同名点,由此可以看出本程序基本满足实习要求,并得到理想的结果。
不足的地方就是选取的特征点的数量不够多,这样就无法判断本程序的“误判”的情况如何。
五、实习体会
在学习到相关系数的时候,一看到计算相关系数的公式的时候我就有种被折服的感觉,那个公式实在是太复杂,它使我感觉我怎么也不能记住这个复杂的公式。
不过经过这次实习后,我觉得这个公式又不是当初认为的那样无法记忆。
我想这次实习我最大的收获就是对于之前在学习过程中遇到不懂知识以及难以记忆的知识都得到了加强,方便了我对他们的理解与记忆。
其次,在编程过程中更加锻炼自己动手编程的能力,使得我编程能力较之前有着一定的提高。
每次编程实习都是一个积累经验的过程,然后通过一次次的实习后,我最终的能力就能够得到很好的体现。
附件:
voidMoravec(BYTE*pSrcBits,vector<
FEATUREPOINT>
*FeaturePoint,
intm_threshold,intm_window1,intm_window2,intwidth,intheight,int*Count1)
{
。
此部分程序与点特征程序中代码一样,因此不再重复粘贴
}
vector<
RemoveReplicative(vector<
v)
vector<
ret;
:
iteratoriter=v.begin();
ret.clear();
ret.push_back(*iter);
iteratoriter2;
BOOLb(FALSE);
for(iter=v.begin();
iter!
=v.end();
++iter)
b=false;
for(iter2=ret.begin();
iter2!
=ret.end();
++iter2)
{
if(iter->
x==iter2->
x&
&
iter->
y==iter2->
y)
{
b=TRUE;
//存在
break;
}
}
if(b==FALSE)
ret.push_back(*iter);
returnret;
voidSaveBand(intwidth,intheight,intbyteCount,intbiBitCount,LPBYTEpBits,CStringSavePath)
BITMAPFILEHEADERbmfh;
BITMAPINFOHEADERbmih;
bmfh.bfType=0x4d42;
//0x42="
B"
0x4d="
M"
bmfh.bfReserved1=0;
bmfh.bfReserved2=0;
if(biBitCount==8)
bmfh.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+256*4;
bmfh.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+256*4+byteCount;
elseif(biBitCount==24)
bmfh.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
bmfh.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+byteCount;
else
MessageBox(NULL,"
8bitor24bitaccepted"
"
错误"
MB_ICONERROR);
return;
bmih.biBitCount=biBitCount;
bmih.biWidth=width;
bmih.biHeight=height;
bmih.biSize=40;
bmih.biPlanes=1;
bmih.biCompression=BI_RGB;
bmih.biSizeImage=bmfh.bfSize;
bmih.biClrImportant=0;
bmih.biClrUsed=0;
bmih.biXPelsPerMeter=0;
bmih.biYPelsPerMeter=0;
CFilef;
//保存位图
if(f.Open(SavePath,CFile:
modeCreate|CFile:
modeWrite))
f.Write(&
bmfh,sizeof(bmfh));
bmih,sizeof(bmih));
if(biBitCount==8)
RGBQUADrgb[256];
inti(0);
for(;
i<
256;
++i)
rgb[i].rgbBlue=i;
rgb[i].rgbGreen=i;
rgb[i].rgbRed=i;
rgb[i].rgbReserved=0;
//修改颜色表255对应的颜色
rgb[255].rgbBlue=0;
rgb[255].rgbGreen=0;
rgb[255].rgbRed=255;
f.Write(rgb,sizeof(RGBQUAD)*256);
f.Write(pBits,byteCount);
f.Close();
保存图像失败"
voidDrawCross(BYTE*pBits,vector<
FeaturePoint,int_width,intbyteCount)
iteratoriter;
inti(0),j(0);
for(i=0;
byteCount;
if(pBits[i]==255)
pBits[i]=254;
for(iter=FeaturePoint.begin();
=FeaturePoint.end();
i=iter->
y;
j=iter->
x;
pBits[i*_width+j]=255;
pBits[i*_width+j+1]=255;
pBits[i*_width+j-1]=255;
pBits[(i+1)*_width+j]=255;
pBits[(i-1)*_width+j]=255;
pBits[i*_width+j+2]=255;
pBits[i*_width+j-2]=255;
pBits[(i+2)*_width+j]=255;
pBits[(i-2)*_width+j]=255;
voidDrawCross(BYTE*pBits1,BYTE*pBits2,vector<
MATCHEDPOINTS>
MatchedPoints,
int_width1,int_width2,intbyteCount1,intbyteCount2)
for(i=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 相关系数 影像 匹配 实习 报告