资源简介
该程序能实现遥感图像配准,根据同名点实现图像的配准,且能实现单片微分纠正
代码片段和文件信息
#include “stdafx.h“
#include “baseapi.h“
#include
/********************************************************
* 函数名称:
* InterpolationTemplate()
* 参数:
* unsigned char* inTemplate -重采样前的模板指针
* int inLen -输入模板的大小(长宽)
* int outLen -输出模板的大小
* 返回值:
* unsigned char* -重采样后的模板指针
* 说明:
* 该函数用来对模板图像进行重采样
*
***********************************************************/
unsigned char* InterpolationTemplate(unsigned char* inTemplate int inLen int outLen)
{
int ij;//临时循环变量
double ration = (double)outLen/(double)inLen;
double rowcol;//反算的输入图像的行列
//输入图像距离(colrow)最邻近的四个坐标(i1j1)(i2j1)(i1j2)(i2j2)
int i1i2j1j2;
//四个最邻近的像素值
unsigned char f1f2f3f4;
//两个插值中间值
unsigned char f12f34;
//定义一个值,当像素坐标相差小于该值时间认为坐标相同
double EXP = (double)0.001;
unsigned char* outTemplate;
outTemplate = new unsigned char[outLen*outLen];
for(i=0;i for(j=0;j {
//计算插值元素的行列(在输入图像)
col = (double)i/ration;
row = (double)j/ration;
//计算四个邻近元素的坐标
i1= (int)col;
i2= i1+1;
j1= (int)row;
j2= j1+1;
if(fabs(col-inLen+1)<=EXP)
{//要计算的点在模板的右边缘上
if(fabs(row-inLen+1)<=EXP)
{//要计算的点正好是图像右下角的元素,直接取该点的像素值
f1 = inTemplate[j1*inLen+i1];
outTemplate[j*outLen+i] = f1;
}
else
{//点在图像的右边缘但不是最后一点,直接一次插值
f1 = inTemplate[j1*inLen+i1];
f3 = inTemplate[j1*inLen+i2];
outTemplate[j*outLen+i]=((unsigned char)(f1+(row-j1)*(f3-f1)));
}
}
else if(fabs(col-inLen+1)<=EXP)
{//要计算的点在下边缘,且不是最后一个点,直接一次插值得到
f1 = inTemplate[j1*inLen+i1];
f2 = inTemplate[j2*inLen+i1];
outTemplate[j*outLen+i]=((unsigned char)(f1+(col-i1)*(f2-f1)));
}
else
{//计算四个最邻近的像素值
f1 = inTemplate[j1*inLen+i1];
f2 = inTemplate[j2*inLen+i1];
f3 = inTemplate[j1*inLen+i2];
f4 = inTemplate[j2*inLen+j2];
f12 = (unsigned char)(f1+(col-i1)*(f2-f1));
f34 = (unsigned char)(f3+(col-i1)*(f4-f3));
outTemplate[j*outLen+i]=((unsigned char)(f12+(row-i1)*(f34-f12)));
}
}
return outTemplate;
}
/*************************************************************************
*
* \函数名称:
* CalCorrelation()
*
* \输入参数:
* unsigned char* pbase - 基准图象数据指针
* unsigned char* pSamp - 待配准图象数据指针
* int nBlockLen - 配准数据块的尺度大小
*
* \返回值:
* double - 返回两个数据块配准的相似度
*
* \说明:
* 该函数对给定的两个大小为nBlockLen*nBlockLen的数据块,计算两者之间的
*的配准相似度。其中,去掉均值以消除亮度变换的影响。
*
**************************************************************************/
double CalCorrelation(unsigned char* pbase unsigned char* pSamp int nBlockLen)
{
// 临时变量
double dbSelfbase=0dbSelfSamp=0;
int i j;
// 相似度
double dbCor=0;
// 块均值
double dbMeanbase=0dbMeanSamp=0;
// 计算两个块的平均值
for(i=0;i for( j=0;j {
dbMeanbase += pbase[j*nBlockLen + i];
dbMeanSamp += pSamp[j*nBlockLen + i];
}
dbMeanbase = 0;//dbMeanbase/(nB
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2007-07-30 08:34 Image registration\
文件 10784 2005-06-22 10:45 Image registration\ba
文件 943 2005-06-22 11:05 Image registration\ba
文件 38132 2004-05-22 19:07 Image registration\BrowseCtrl.cpp
文件 12905 2004-05-22 19:12 Image registration\BrowseCtrl.h
文件 1723 2005-07-23 16:07 Image registration\ChildFrm.cpp
文件 1456 2005-07-23 16:06 Image registration\ChildFrm.h
文件 3156 2001-08-20 18:25 Image registration\ComboItem.cpp
文件 1537 2001-08-17 16:28 Image registration\ComboItem.h
文件 3691 2005-07-23 15:38 Image registration\Dem.cpp
文件 1282 2005-07-19 20:14 Image registration\Dem.h
文件 2779 2004-11-30 19:40 Image registration\DlgFeat.cpp
文件 1446 2004-11-30 19:13 Image registration\DlgFeat.h
文件 6579 2004-11-30 16:48 Image registration\DlgHisto.cpp
文件 1335 2002-08-23 14:12 Image registration\DlgHisto.h
文件 3532 2001-08-20 18:25 Image registration\EditItem.cpp
文件 1435 2001-08-17 10:14 Image registration\EditItem.h
文件 5491 2005-05-27 22:38 Image registration\EditList.cpp
文件 1673 2005-05-27 22:36 Image registration\EditList.h
文件 10288 2005-06-04 10:25 Image registration\ImageListView.cpp
文件 2507 2005-06-02 20:31 Image registration\ImageListView.h
文件 2975 2005-07-23 15:52 Image registration\IMGDEMPage.cpp
文件 1438 2005-07-19 20:01 Image registration\IMGDEMPage.h
文件 3625 2005-04-05 17:06 Image registration\ImgpairsPage.cpp
文件 1519 2005-03-25 22:02 Image registration\ImgpairsPage.h
文件 1892 2005-03-20 16:04 Image registration\ImgpairsTreeView.cpp
文件 1501 2005-03-20 16:24 Image registration\ImgpairsTreeView.h
文件 13565 2005-07-23 15:41 Image registration\INELEMPage.cpp
文件 1874 2005-07-19 19:39 Image registration\INELEMPage.h
文件 30701 2005-07-23 15:49 Image registration\MainFrm.cpp
文件 3563 2005-07-23 15:18 Image registration\MainFrm.h
............此处省略74个文件信息
- 上一篇:卡方检验案例
- 下一篇:Qt ActiveX 开发帮助文档
评论
共有 条评论