资源简介

该程序能实现遥感图像配准,根据同名点实现图像的配准,且能实现单片微分纠正

资源截图

代码片段和文件信息

#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\baseApi.cpp
     文件         943  2005-06-22 11:05  Image registration\baseApi.h
     文件       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个文件信息

评论

共有 条评论