




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程編號(hào): 課程性質(zhì):必修數(shù)字?jǐn)z影測(cè)量實(shí)習(xí)學(xué)院: 測(cè)繪學(xué)院 專業(yè): 測(cè)繪工程 地點(diǎn): 校 內(nèi) 班級(jí): 201116110 組號(hào): 姓名: 學(xué)號(hào): 教師: 徐 芳 李 妍 申麗麗 2014年4月10日 至 2014年4月30日目錄一、 實(shí)習(xí)目的1二、 VirtuoZo實(shí)習(xí)過(guò)程11、 數(shù)據(jù)準(zhǔn)備以及初步處理11) 新建測(cè)區(qū)12) 初步處理13) 進(jìn)一步處理24) 產(chǎn)品生成22、 DEM編輯23、 DEM拼接34、 圖像鑲嵌45、 IGS數(shù)字化測(cè)圖46、 空中三角測(cè)量51) 數(shù)據(jù)準(zhǔn)備及預(yù)處理52) 交互式編輯63) 三角測(cè)量74) DEM拼接和正射影像制作7三、 GeoWay實(shí)習(xí)過(guò)程81、 交互式編輯
2、81) 新建工程并設(shè)置相關(guān)參數(shù)82) 生成內(nèi)圖廓.83) 交互式編輯92、 空三加密101) 數(shù)據(jù)準(zhǔn)備及檢查102) 控制網(wǎng)平差113) 精確匹配并查看匹配結(jié)果114) 刺點(diǎn)113、 立體測(cè)圖121) 新建方案和數(shù)據(jù)準(zhǔn)備122) 初步處理123) 批處理134) 地物采集135) DEM編輯136) TIN網(wǎng)編輯147) 質(zhì)量檢查15四、 編程171、 空間后方交會(huì)172、 特征匹配213、 同名核線提取25五、 心得體會(huì)28一、 實(shí)習(xí)目的通過(guò)對(duì)數(shù)字?jǐn)z影測(cè)量軟件的操作,熟悉數(shù)字?jǐn)z影測(cè)量系統(tǒng),掌握數(shù)字?jǐn)z影測(cè)量軟件的作業(yè)流程,加深對(duì)數(shù)字?jǐn)z影測(cè)量過(guò)程的理解。通過(guò)編程實(shí)習(xí),加深對(duì)數(shù)字?jǐn)z影測(cè)量學(xué)相關(guān)方法
3、原理的理解,提高編程動(dòng)手能力。二、 VirtuoZo實(shí)習(xí)過(guò)程1、數(shù)據(jù)準(zhǔn)備以及初步處理1) 新建測(cè)區(qū)設(shè)置測(cè)區(qū)參數(shù),新建模型設(shè)置模型參數(shù),設(shè)置相機(jī)參數(shù)設(shè)置控制點(diǎn)數(shù)據(jù)導(dǎo)入影像數(shù)據(jù),至此,準(zhǔn)備工作完成; 圖1 設(shè)置測(cè)區(qū)參數(shù) 圖2 設(shè)置模型參數(shù) 圖3 導(dǎo)入控制點(diǎn) 圖4 導(dǎo)入相機(jī)參數(shù)圖5 導(dǎo)入影像2) 內(nèi)定向相對(duì)定向絕對(duì)定向,至此影像定向完成;圖6 內(nèi)定向圖7 相對(duì)定向相對(duì)定向做完之后系統(tǒng)會(huì)自動(dòng)進(jìn)行絕對(duì)定向,我們可以到主界面查看絕對(duì)定向的結(jié)果:下圖是模型157-156的絕對(duì)定向結(jié)果圖:圖8 157-156絕對(duì)定向結(jié)果3) 然后點(diǎn)擊處理核線重采樣影像匹配,做完這些就可以準(zhǔn)備生成產(chǎn)品;4) 然后點(diǎn)擊產(chǎn)品,可以
4、生成需要的產(chǎn)品,如DEM,DOM,等高線等;2、DEM編輯由于生成的DEM含有房屋,樹(shù)木等地物,所以并不是真正意義上的數(shù)字高程模型,而應(yīng)該是DTM(數(shù)字表面模型)。如下圖:圖9 數(shù)字表面模型圖中的紅色方框所包圍的可以很容易看出來(lái)是房屋而不是地形。所以需要對(duì)上上述DEM進(jìn)行編輯,生成正真意義上的DEM。點(diǎn)擊“高級(jí)DEM編輯”,進(jìn)入DEM編輯界面。圖10 編輯后的DEM圖中的紅色部分就是我們編輯的范圍,經(jīng)過(guò)編輯后加載DEM顯示立體圖,可以看出其中的房屋高度已經(jīng)貼合地面了。3、DEM拼接由于每一個(gè)DEM只是兩張影像形成的,一測(cè)區(qū)有多個(gè)DEM,因此需要經(jīng)過(guò)拼接才能形成整個(gè)測(cè)區(qū)的DEM。點(diǎn)擊“高級(jí)-DE
5、M拼接”彈出DEM拼接界面,加載需要拼接的DEM,用鼠標(biāo)劃定拼接范圍,接下來(lái)就可以執(zhí)行拼接。 圖11圖12 DEM拼接4、圖像鑲嵌生成整個(gè)測(cè)區(qū)的DEM后,我們就可以生成整個(gè)測(cè)區(qū)的正射影像了。依次點(diǎn)擊“高級(jí)正射影像制作”彈出制作界面,選定DEM以及相應(yīng)的影像數(shù)據(jù),然后執(zhí)行,結(jié)果如圖圖13 拼接后的正射影像5、IGS數(shù)字化測(cè)圖點(diǎn)擊“測(cè)圖IGS數(shù)字化測(cè)圖”進(jìn)入到數(shù)字化測(cè)圖界面,然后依次“新建VZV矢量文件裝載影像數(shù)據(jù)”,然后通過(guò)紅綠眼睛對(duì)測(cè)區(qū)進(jìn)行矢量化。圖14 IGS數(shù)字化測(cè)圖圖15 矢量圖形6、空中三角測(cè)量1) 數(shù)據(jù)準(zhǔn)備和圖像預(yù)處理打開(kāi)VirtuozoAAT,依次“新建測(cè)區(qū)設(shè)置參數(shù)-引入影像”圖1
6、6 輸入影像注意第二條航帶的選項(xiàng)要選上相機(jī)旋轉(zhuǎn)。然后進(jìn)行“內(nèi)定向航帶間偏移量”圖17 航帶間偏移量在圖中選取航帶間的同名點(diǎn),系統(tǒng)會(huì)自動(dòng)計(jì)算航帶間偏移量設(shè)置好航帶間偏移量之后,開(kāi)始提取連接點(diǎn),最后運(yùn)行自動(dòng)挑點(diǎn)程序。2) 交互式編輯打開(kāi)交互式編輯界面,一次在每張圖像上選點(diǎn),保證每個(gè)藍(lán)框周圍至少有3個(gè)點(diǎn)就行。 圖18 選點(diǎn) 圖19 使用PATB平差 然后加入控制點(diǎn),只要在測(cè)區(qū)中加入三個(gè)控制點(diǎn),然后使用PATB進(jìn)行平差,就可以使用“預(yù)測(cè)控制點(diǎn)”預(yù)測(cè)出其余的控制點(diǎn)的位置,然后依次選出控制點(diǎn)坐標(biāo)。 圖20 控制點(diǎn) 圖21 被挑出的點(diǎn)可能一次選擇的點(diǎn)精度不夠會(huì)有誤差超限的點(diǎn),顯示在如圖21中帶有星號(hào),然后對(duì)
7、帶有星號(hào)的點(diǎn)從新定位,這樣直到?jīng)]有星號(hào)的點(diǎn)。至此,交互式編輯完成。3) 三角測(cè)量打開(kāi)VirtuozoNT,打開(kāi)在AAT中建立的測(cè)區(qū),自動(dòng)創(chuàng)建測(cè)區(qū),之就可以使用批處理功能進(jìn)行自動(dòng)化處理。至此,三角測(cè)量完成。圖22 批處理界面4) DEM拼接和正射影像制作按照前面的拼接步驟進(jìn)行DEM拼接和正射影像的制作,結(jié)果如下: 圖23 DEM 圖24 正射影像3、 GeoWay實(shí)習(xí)流程1、交互式編輯1)新建工程,設(shè)置相關(guān)參數(shù)(PS:對(duì)照表添加 LAYER ENDSEC,然后將SYM符號(hào)庫(kù)文件拷貝到C:WINDOWSGeoSymbol) 圖1 參數(shù)設(shè)置界面2)生成內(nèi)圖廓線 圖2 生成圖廓線3)交互式地物編輯1、
8、加載柵格圖層。點(diǎn)擊柵格圖層,加載tfw數(shù)據(jù),加入柵格圖層,然后生成內(nèi)圖廓,格網(wǎng)線 圖3 加載柵格圖層2、勾選跨層輸入編輯,設(shè)置激活圖層,然后點(diǎn)擊相應(yīng)地物設(shè)為輸入地物類。3、點(diǎn)、單線、雙線編輯4、點(diǎn)、線處理。懸掛點(diǎn)和偽節(jié)點(diǎn)處理,工具檢查懸掛偽節(jié)點(diǎn)進(jìn)行偽節(jié)點(diǎn)檢測(cè)。批處理消除懸掛點(diǎn)和偽節(jié)點(diǎn)能夠消除大部分錯(cuò)誤,不能消除的部分進(jìn)行手工編輯。 圖4 節(jié)點(diǎn)編輯后的圖5、面處理。新建房屋對(duì)照表,在拓?fù)錁?gòu)建時(shí)啟用房屋對(duì)照表,然后拓?fù)浠《晤A(yù)處理,最后進(jìn)行拓?fù)錁?gòu)建。對(duì)于拓?fù)錁?gòu)建中被遺漏的要手工處理后再次構(gòu)建圖5 拓?fù)錁?gòu)建后的圖2、GEOWAY空三加密1)新建工程,數(shù)據(jù)準(zhǔn)備并檢查依次點(diǎn)擊“新建工程選擇數(shù)據(jù)所在的目錄初
9、始構(gòu)網(wǎng)”然后點(diǎn)擊“生成成果生成單色點(diǎn)云”用mashlab打開(kāi).ply文件,查看點(diǎn)云和構(gòu)網(wǎng)結(jié)果 圖6 點(diǎn)云圖 圖7 網(wǎng)形圖2)控制網(wǎng)平差“常規(guī)處理光束法平差刪除殘差大于域值的點(diǎn)自由網(wǎng)平差”,重復(fù)上述步驟直到最小殘差小于閾值60(PS:每次刪除的點(diǎn)不能太多,以防刪除過(guò)多正確的點(diǎn))3)精確匹配并查看匹配結(jié)果點(diǎn)擊“常規(guī)處理精確匹配”,進(jìn)一步匹配圖8 圖94)刺點(diǎn)常規(guī)處理光束法平差常規(guī)處理絕對(duì)定向(GPS)刺點(diǎn)圖10 刺點(diǎn)界面5)空三結(jié)果圖113、立體測(cè)圖(無(wú)人機(jī))1)新建方案和數(shù)據(jù)準(zhǔn)備影像管理加載影模型管理新建模型控制點(diǎn)編輯導(dǎo)入控制點(diǎn)像點(diǎn)導(dǎo)入導(dǎo)入像點(diǎn)外方為元素導(dǎo)入導(dǎo)入外方位元素2) 初步處理內(nèi)定向相對(duì)
10、定向絕對(duì)定向核線重采樣圖12 相對(duì)定向3)批處理圖134) 地物采集新建加工工程,然后依次進(jìn)行高程點(diǎn)、道路、房屋、比高點(diǎn)、等高線的采集圖14 地物采集結(jié)果5)DEM編輯1、點(diǎn)線處理 采集特征線處理選擇特征線處理2、面處理自適應(yīng)內(nèi)插,量測(cè)點(diǎn)內(nèi)插局部置平、水域處理 圖15 DEM編輯前 圖16 DEM編輯后6)TIN網(wǎng)處理圖17 編輯前 圖18 編輯后圖19 編輯后 7)質(zhì)量檢查1、設(shè)置質(zhì)檢方案制作方案加入工作方案 圖20 檢查報(bào)告 圖21 方案設(shè)置 2、新建檢查任務(wù),指定目錄到數(shù)據(jù)所在目錄。然后自動(dòng)檢查錯(cuò)誤并查看錯(cuò)誤,然后對(duì)矢量圖進(jìn)行修改圖22 編輯前 圖23 編輯后 圖24 編輯前 圖25 編
11、輯后四、編程內(nèi)容1、單像空間后方交會(huì)#include hfjhdialog.h#include #include #include #include #include #include using namespace std;HFJHDialog:HFJHDialog(QWidget *parent) : QDialog(parent), ui(new Ui:HFJHDialog) ui-setupUi(this);char *title= 空間后方交會(huì);QString qtitle = QString:fromLocal8Bit(title);setWindowTitle(qtitle);u
12、i-textBrowser-setText(-HFJH-); /焦距 單位pixel fx=4547.99665; fy=4547.87373; /內(nèi)方位元素 pixel x0=47.48571; y0=12.02756; /畸變參數(shù) k1=-5.00793e-009; k2=1.83462e-016; p1=-2.24419e-008; p2=1.76820e-008; /初始值 Xs0=4300.0; Ys0=-150.0; Zs0=-300.0;/單位mm phi0=0.0; omega0=0.0; kappa0=0.0;/單位radHFJHDialog:HFJHDialog() del
13、ete ui;/讀取像點(diǎn)坐標(biāo)int HFJHDialog:readxy(string path) int index = 1; /path =F:我的課程數(shù)字?jǐn)z影測(cè)量影像數(shù)據(jù)后方交會(huì)像點(diǎn)坐標(biāo).txt; ifstream fil; fil.open(path); if(!fil) char *log = 打開(kāi)像點(diǎn)文件失敗textBrowser-append(QString:fromLocal8Bit(log); return -1; xy tmp; while(!fil.eof() filtmp.indextmp.xtmp.y;ui-textBrowser-append(QString(Poin
14、t%1: x:%2 y:%3).arg(index).arg(tmp.x).arg(tmp.y);index+; pic.push_back(tmp); fil.close(); return 0;/讀取物方點(diǎn)坐標(biāo)int HFJHDialog:readXYZ(string path) int index = 1; ifstream fil; fil.open(path); if(!fil) char *log = 打開(kāi)控制點(diǎn)文件失敗textBrowser-append(QString:fromLocal8Bit(log); return -1; XYZ tmp; string head; fo
15、r(int i = 0; i head; while(!fil.eof() filtmp.indextmp.Xtmp.Ytmp.Z;ui-textBrowser-append(QString(Point%1: X:%2 Y:%3 Z:%3).arg(index).arg(tmp.X).arg(tmp.Y).arg(tmp.Z); index+; obj.push_back(tmp); fil.close(); return 0;/讀取相機(jī)參數(shù)文件int HFJHDialog:readcamera(string path)int index = 1; /path =F:我的課程數(shù)字?jǐn)z影測(cè)量影像數(shù)
16、據(jù)后方交會(huì)像點(diǎn)坐標(biāo).txt; ifstream fil; fil.open(path); if(!fil) char *log = 打開(kāi)相機(jī)文件失敗textBrowser-append(QString:fromLocal8Bit(log); return -1; fil.close(); return 0;/空間后方交會(huì)算法主體函數(shù)void HFJHDialog:HFJH() /結(jié)果值 double Xs=Xs0,Ys=Ys0,Zs=Zs0;/定義 double phi=phi0,omega=omega0,kappa=kappa0;/定義 double x,y,X,Y,Z;/定義X,Y,Z d
17、ouble a1,a2,a3,b1,b2,b3,c1,c2,c3; double X_,Y_,Z_; double a11,a12,a13,a14,a15,a16; double a21,a22,a23,a24,a25,a26; double lx,ly; double r_r, dx, dy; cv:Mat A, L, dX; /, A0, L0, A1; /迭代終止閾值 double e = 1.0 / 206265;/單位權(quán)中誤差double m0; int index = 1; /求取主點(diǎn)坐標(biāo) double W = 5344.0; double H = 4008.0; x0 = W /
18、 2 + x0; y0 = H / 2 - y0; do for (size_t i = 0; i != pic.size(); +i) x = pici.x; y = pici.y; X = 0; Y = 0; Z = 0; for (size_t j = 0; j obj.size(); j+) if (objj.index = pici.index) X = objj.X; Y = objj.Y; Z = objj.Z; break; if (abs(x) textBrowser-append(QString(%1%2%3).arg(QString:fromLocal8Bit(arg1)
19、.arg(pici.index).arg(QString:fromLocal8Bit(arg2); continue; /求觀測(cè)值的改正 r_r = (x - x0)*(x - x0) + (y - y0)*(y - y0); dx = (x - x0)*(k1*r_r + k2*r_r*r_r) + p1*(r_r + 2 * (x - x0)*(x - x0) - 2 * p2*(x - x0)*(y - y0); dy = -(y - y0)*(k1*r_r + k2*r_r*r_r) + p2*(r_r + 2 * (y - y0)*(y - y0) - 2 * p1*(x - x0)
20、*(y - y0); /經(jīng)過(guò)畸變改正后的像點(diǎn)坐標(biāo)觀測(cè)值 x = (x - x0) - dx; y = -(y - y0) - dy; /求矩陣R各元素的值 a1 = cos(phi)*cos(kappa) - sin(phi)*sin(omega)*sin(kappa); a2 = -cos(phi)*sin(kappa) - sin(phi)*sin(omega)*cos(kappa); a3 = -sin(phi)*cos(omega); b1 = cos(omega)*sin(kappa); b2 = cos(omega)*cos(kappa); b3 = -sin(omega); c1
21、 = sin(phi)*cos(kappa) + cos(phi)*sin(omega)*sin(kappa); c2 = -sin(phi)*sin(kappa) + cos(phi)*sin(omega)*cos(kappa); c3 = cos(phi)*cos(omega); /求X_,Y_,Z_ X_ = a1*(X - Xs) + b1*(Y - Ys) + c1*(Z - Zs); Y_ = a2*(X - Xs) + b2*(Y - Ys) + c2*(Z - Zs); Z_ = a3*(X - Xs) + b3*(Y - Ys) + c3*(Z - Zs); /求x,y的近似
22、值 double x_ = -fx*X_ / Z_; double y_ = -fy*Y_ / Z_; /求矩陣L各元素的值 lx = x - x_; ly = y - y_; /求矩陣A各元素的值 a11 = 1 / Z_*(a1*fx + a3*x); a12 = 1 / Z_*(b1*fx + b3*x); a13 = 1 / Z_*(c1*fx + c3*x); a21 = 1 / Z_*(a2*fy + a3*y); a22 = 1 / Z_*(b2*fy + b3*y); a23 = 1 / Z_*(c2*fy + c3*y); a14 = y*sin(omega) - (x /
23、fx*(x*cos(kappa) - y*sin(kappa) + fx*cos(kappa)*cos(omega); a15 = -fx*sin(kappa) - x / fx*(x*sin(kappa) + y*cos(kappa); a16 = y; a24 = -x*sin(omega) - (y / fy*(x*cos(kappa) - y*sin(kappa) - fy*sin(kappa)*cos(omega); a25 = -fy*cos(kappa) - y / fy*(x*sin(kappa) + y*cos(kappa); a26 = -x; /合成矩陣 double a
24、12 = a11, a12, a13, a14, a15, a16, a21, a22, a23, a24, a25, a26 ; double l2 = lx, ly ; cv:Mat Ai(2, 6, CV_64FC1, a); cv:Mat Li(2, 1, CV_64FC1, l); A.push_back(Ai); L.push_back(Li); /計(jì)算 dX = (A.t() * A).inv() * A.t() * L; Xs+=dX.at(0,0); Ys+=dX.at(1,0); Zs+=dX.at(2,0); phi+=dX.at(3,0); omega+=dX.at(4
25、,0); kappa+=dX.at(5,0);ui-textBrowser-append(QString(#%1: %2 %3 %4 %5 %6 %7).arg(index).arg(dX.at(0).arg(dX.at(1).arg(dX.at(2).arg(dX.at(3).arg(dX.at(4).arg(dX.at(5); index+;cv:Mat M0 = (A*dX - L).t()*(A*dX - L);m0 = sqrt(M0.at(0) / (2 * pic.size() - 6); A.release(); L.release(); if (index 100) brea
26、k; while(fabs(dX.at(0)0.001|fabs(dX.at(3)e);ui-textBrowser-append(QString(Result:);ui-textBrowser-append(QString(Xs:%1 Ys:%2 Zs:%3 phi:%4 omega:%5 kappa:%6).arg(Xs).arg(Ys).arg(Zs).arg(phi).arg(omega).arg(kappa);char *log = 單位權(quán)中誤差:;ui-textBrowser-append(QString(%1%2).arg(QString:fromLocal8Bit(log).a
27、rg(m0);void HFJHDialog:on_pushButton_clicked()QString qpath = QFileDialog:getOpenFileName(this);string path = qpath.toLocal8Bit();if(readxy(path) = -1)char *log =讀取像點(diǎn)坐標(biāo)錯(cuò)誤XXXXXX;ui-textBrowser-append(QString:fromLocal8Bit(log);return;char *log = 讀取像點(diǎn)坐標(biāo)結(jié)束OOOOOO;ui-textBrowser-append(QString:fromLocal8
28、Bit(log);ui-lineEdit-setText(qpath);void HFJHDialog:on_pushButton_2_clicked()QString qpath = QFileDialog:getOpenFileName(this);string path = qpath.toLocal8Bit();if(readXYZ(path) = -1)char *log = 讀取控制點(diǎn)坐標(biāo)錯(cuò)誤XXXXXX;ui-textBrowser-append(QString:fromLocal8Bit(log);return;char *log = 讀取控制點(diǎn)坐標(biāo)結(jié)束OOOOOO;ui-te
29、xtBrowser-append(QString:fromLocal8Bit(log);ui-lineEdit_2-setText(qpath);void HFJHDialog:on_pushButton_4_clicked()HFJH();void HFJHDialog:on_pushButton_5_clicked()HFJHDialog:close();圖1 控件后方交會(huì)2、特征匹配#include match.h#include #include #include using namespace std;using namespace cv;/構(gòu)造函數(shù)Mmatch:Mmatch(int
30、 length, int flag)Mlength = length;Mflag = flag;match();/構(gòu)建子窗體void Mmatch:findsubwin(Mat &src, Mat &dst, int i, int j, int length)dst = Mat:zeros(length, length, CV_8UC1);int xl = i - length / 2;int yl = j - length / 2;int xr = i + length / 2;int yr = j + length / 2;int xdl = 0;int ydl = 0;int xdr =
31、 length - 1;int ydr = length - 1;if (xl0)xdl = 0 - xl;xl = 0;if (yl = src.cols)xdr = (dst.cols -1)- (xr - (src.cols-1);xr = src.cols - 1;if (yr = src.rows)ydr = (dst.rows-1) - (yr - (src.rows-1);yr = src.rows - 1;Mat sROI = src(Range(yl+1, yr+1), Range(xl+1, xr+1);sROI.copyTo(dst(Range(ydl+1, ydr+1)
32、, Range(xdl+1, xdr+1);/匹配算法主體函數(shù)int Mmatch:match()string path1 = E:我的課程數(shù)字?jǐn)z影測(cè)量影像數(shù)據(jù)匹配1BAK.bmp;string path2 = E:我的課程數(shù)字?jǐn)z影測(cè)量影像數(shù)據(jù)匹配2BAK.bmp;string path = E:我的課程數(shù)字?jǐn)z影測(cè)量影像數(shù)據(jù)匹配1BAK_points.txt;ifstream fil;vector pointssrc;fil.open(path);if (!fil)cout read points error index pt.x pt.y;pointssrc.push_back(pt);Ma
33、t src1 = imread(path1,CV_LOAD_IMAGE_GRAYSCALE);Mat src2 = imread(path2,CV_LOAD_IMAGE_GRAYSCALE);if (src1.empty() | src2.empty()cout read image error endl;return -1;vector pointsdst;Mat subwinsrc, subwindst;for (int i = 0; i pointssrc.size(); +i)point tpoint;findsubwin(src1, subwinsrc, pointssrci.x,
34、pointssrci.y, Mlength);findsamename(src2, subwinsrc, tpoint);pointsdst.push_back(tpoint);Mat dst1, dst2;cvtColor(src1, dst1, CV_GRAY2RGB);cvtColor(src2, dst2, CV_GRAY2RGB);CvFont font;cvInitFont(&font,CV_FONT_HERSHEY_PLAIN,1.0,1.0);for (int i = 0; i pointssrc.size(); +i)char cind5;sprintf(cind,%d,i+
35、1);line(dst1, Point(pointssrci.x-3, pointssrci.y-3),Point(pointssrci.x+3, pointssrci.y+3), CV_RGB(255, 0, 0);line(dst1, Point(pointssrci.x-3, pointssrci.y+3),Point(pointssrci.x+3, pointssrci.y-3), CV_RGB(255, 0, 0);putText(dst1,cind,Point(pointssrci.x+4,pointssrci.y+5),CV_FONT_HERSHEY_PLAIN,1.0,CV_R
36、GB(255,0,0);line(dst2, Point(pointsdsti.x-3, pointsdsti.y-3), Point(pointsdsti.x+3, pointsdsti.y+3), CV_RGB(255, 0, 0);line(dst2, Point(pointsdsti.x-3, pointsdsti.y+3), Point(pointsdsti.x+3, pointsdsti.y-3), CV_RGB(255, 0, 0);putText(dst2,cind,Point(pointsdsti.x+4,pointsdsti.y+5),CV_FONT_HERSHEY_PLA
37、IN,1.0,CV_RGB(255,0,0);imshow(src, dst1);imshow(dst, dst2);waitKey();return 0;/尋找同名點(diǎn)函數(shù)void Mmatch:findsamename(Mat &src, Mat &subwin, point &dst)Mat subwind;int length = subwin.cols;int helf_length = length / 2;int flag = Mflag;float relate = 0;for (int i = 0; i src.cols; +i)for (int j = 0; j relate
38、)relate = tmp;dst.x = i;dst.y = j;/特征向量比較函數(shù)float Mmatch:compare(Mat &subwin, Mat &subwind,int flag)float sum = 0.0;float avg1 = 0.0, avg2 = 0.0;float sdv1 = 0.0, sdv2 = 0.0;int nr = subwin.rows;int nc = subwin.cols;if(subwin.isContinuous()&subwind.isContinuous()nc = nc*nr;nr = 1;switch (flag)case 1:
39、/相關(guān)函數(shù)法for (int i = 0; i nr; +i)uchar *subwin_ptr = subwin.ptr(i);uchar *subwind_ptr= subwind.ptr(i);for (int j = 0; j nc; j+)sum += (float)(*(subwin_ptr+j)* (*(subwind_ptr+j);return sum;case 2:/協(xié)方差函數(shù)法for (int i = 0; i nr; +i)uchar *subwin_ptr = subwin.ptr(i);uchar *subwind_ptr= subwind.ptr(i);for (i
40、nt j = 0; j nc; j+)avg1 += *(subwin_ptr+j);avg2 += *(subwind_ptr+j);avg1 = avg1 / (subwin.rows*subwin.cols);avg2 = avg2 / (subwind.rows*subwind.cols);for (int i = 0; i nr; +i)uchar *subwin_ptr = subwin.ptr(i);uchar *subwind_ptr= subwind.ptr(i);for (int j = 0; j nc; j+)sum += (*(subwin_ptr+j)-avg1)*(
41、*(subwind_ptr+j) - avg2);return sum;case 3:/相關(guān)系數(shù)法for (int i = 0; i nr; +i)uchar *subwin_ptr = subwin.ptr(i);uchar *subwind_ptr= subwind.ptr(i);for (int j = 0; j nc; j+)avg1 += *(subwin_ptr+j);avg2 += *(subwind_ptr+j);avg1 = avg1 / (subwin.rows*subwin.cols);avg2 = avg2 / (subwind.rows*subwind.cols);f
42、or (int i = 0; i nr; +i)uchar *subwin_ptr = subwin.ptr(i);uchar *subwind_ptr= subwind.ptr(i);for (int j = 0; j nc; j+)sum += (*(subwin_ptr+j)-avg1)*(*(subwind_ptr+j) - avg2);for (int i = 0; i nr; +i)uchar *subwin_ptr = subwin.ptr(i);uchar *subwind_ptr= subwind.ptr(i);for (int j = 0; j nc; j+)sdv1 += (*(subwin_ptr+j)-avg1)*(*(subwin_ptr+j) - avg1);sdv2 += (*(subwind_ptr+j)-avg2)*(*(subwind_ptr+j) - avg2);sum = sum / sqrtf(sdv1*sdv2);return sum;case 4:/差平方和法for (in
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園大班社會(huì)活動(dòng)《課間十分鐘》教案(5篇)
- 2025年重慶市安全員知識(shí)題庫(kù)及答案
- 莆田學(xué)院《數(shù)據(jù)結(jié)構(gòu)(Java)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津中德應(yīng)用技術(shù)大學(xué)《商務(wù)數(shù)據(jù)分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 濰坊學(xué)院《土地測(cè)量與評(píng)價(jià)》2023-2024學(xué)年第二學(xué)期期末試卷
- 邯鄲科技職業(yè)學(xué)院《風(fēng)電機(jī)組設(shè)計(jì)與制造》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)治幼兒師范高等??茖W(xué)?!额A(yù)算管理模擬》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年江西省建筑安全員《B證》考試題庫(kù)
- 2025年湖南省安全員《A證》考試題庫(kù)及答案
- 揚(yáng)州環(huán)境資源職業(yè)技術(shù)學(xué)院《通風(fēng)空調(diào)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 區(qū)塊鏈應(yīng)用操作員技能大賽考試題庫(kù)大全-下(多選、判斷題)
- 二 《“友邦驚詫”論》(同步練習(xí))解析版
- 施工技術(shù)交底(電氣安裝)
- 污水處理廠TOT項(xiàng)目招標(biāo)文件模板
- 勞工及道德體系法律法規(guī)清單
- 倉(cāng)儲(chǔ)物流中心物業(yè)管理服務(wù)費(fèi)報(bào)價(jià)單
- 2024年哈爾濱科學(xué)技術(shù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案解析
- 2024年北京市大興區(qū)清源街道招聘筆試沖刺題(帶答案解析)
- (2024年)污水處理設(shè)備培訓(xùn)方案
- 《生物質(zhì)熱電聯(lián)產(chǎn)工程設(shè)計(jì)規(guī)范》
- 中國(guó)十五冶招聘線上筆試測(cè)評(píng)題庫(kù)
評(píng)論
0/150
提交評(píng)論