資源簡介
該程序能實現遙感圖像配準,根據同名點實現圖像的配準,且能實現單片微分糾正

代碼片段和文件信息
#include?“stdafx.h“
#include?“baseapi.h“
#include?
/********************************************************
*?函數名稱:
*??????InterpolationTemplate()
*?參數:
*??????unsigned?char*?inTemplate??-重采樣前的模板指針
*??????int?inLen???????-輸入模板的大?。ㄩL寬)
*??????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 開發幫助文檔
評論
共有 條評論