资源简介
包含DLT算子全过程 生成的文本路径需自己设定
代码片段和文件信息
#include “StdAfx.h“
#include
#include “DLTlinesTrans.h“
#include “MyMatrix.h“
#include
DLTlinesTrans::DLTlinesTrans(void)
{
}
DLTlinesTrans::~DLTlinesTrans(void)
{
}
int DLTlinesTrans::GetLinesNum(char *filenameint &m)
{
FILE *file;
file=fopen(filename“rt+“);
int temp=1;
char ch=fgetc(file);
while (ch!=EOF)
{
if (ch==‘\n‘)
{temp++;
}
ch=fgetc(file);
}
fclose(file);
m=temp;
return m;
}
void DLTlinesTrans::InputDate(char *filenameint n INPUT *inputdate)
{
FILE *file;
file=fopen(filename“rt“);
for (int i=0;i {fscanf(file“%f%f%f%f%f“&inputdate[i].x&inputdate[i].y&inputdate[i].X&inputdate[i].Y&inputdate[i].Z);
}
fclose(file);
}
void DLTlinesTrans::saveL(char *filenamefloat *a)
{
FILE *file;
file=fopen(filename“wt+“);
for (int i=0;i {
fprintf(file“L%d=%f\n“i+1a[i]);
}
fclose(file);
}
void DLTlinesTrans::TotalProcess(char *filenamefloat *L)
{
int linenumber; //文本文件里的行数也就是其点数,每个控制点在文本文件里占一行
GetLinesNum(filenamelinenumber); //获得控制点数目
INPUT *origndata=new INPUT[linenumber]; //声明原始数据的数组来存储数据
InputDate(filenamelinenumberorigndata); //调用DLTlinesTrans类里面的函数来初始化数组
showdata(origndatalinenumber); //在控制台里面显示原始数据
float *Cxishu=new float[22*linenumber]; //C系数矩阵声明
InialCxishu(origndatalinenumberCxishu); //初始化该矩阵
float *Dxishu=new float[2*linenumber]; //D常数矩阵
InialDxishu(origndatalinenumberDxishu); //初始化常数矩阵
showCxishu(Cxishulinenumber); //分别显示C和D矩阵
showDxishu(Dxishulinenumber);
float *CTxishu=new float[22*linenumber]; //声明转置矩阵
MyMatrix::CalculateAT(CxishuCTxishu2*linenumber11); //对C矩阵进行转置
float *CTCxishu=new float[121];
MyMatrix::CalculateAB(CTxishuCxishuCTCxishu112*linenumber11); //CT与C矩阵相乘
showCTCxishu(CTCxishu); //显示CTC矩阵
float *CTDxishu=new float[11];
MyMatrix::CalculateAB(CTxishuDxishuCTDxishu112*linenumber1); //CT与D矩阵相乘
float *CTCxishu_NI=new float[121]; //对CTC矩阵求逆
CTCxishu_NI=CTCxishu;
MyMatrix::rinv(CTCxishu_NIN);
//float *L=new float[11]; //L=(CTC)-1*(CTD)
MyMatrix::CalculateAB(CTCxishu_NICTDxishuL11111);
for(int m=0;m<11;m++)
{
L[m]=L[m]*(-1);
}
}
void DLTlinesTrans::showdata(INPUT *dataint n)
{
printf(“控制点坐标为:\n“);
printf(“数目n为%d\n“n);
printf(“x y X Y Z\n“);
for (int i=0;i {
printf(“%f %f %f %f %f\n“data[i].xdata[i].ydata[i].Xdata[i].Ydata[i].Z);
}
printf(“\n*****************************************************************************\n“);
}
/////////////////////////////////////////////////////////////////////////////////
/*初始化常数项c////////////////////*/
//////////////////////////////////////////////////////////////////////////////////
void DLTlinesTrans::InialCxishu(INPUT *data1int nfloat *data2)
{
for (int i=0;i {
data2[i*22]=data1[i].X;
data2[i*22+1]=data1[i].Y;
data2[i*22+2]=data1[i]
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 57344 2014-04-09 21:17 DLTTRANS\Debug\DLTTRANS.exe
文件 378556 2014-04-09 21:17 DLTTRANS\Debug\DLTTRANS.ilk
文件 560128 2014-04-09 21:17 DLTTRANS\Debug\DLTTRANS.pdb
文件 2862 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\cl.command.1.tlog
文件 4554 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\CL.read.1.tlog
文件 2486 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\CL.write.1.tlog
文件 53267 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\DLTlinesTrans.obj
文件 406 2014-03-29 16:30 DLTTRANS\DLTTRANS\Debug\DLTTRANS.exe.em
文件 472 2014-03-29 16:30 DLTTRANS\DLTTRANS\Debug\DLTTRANS.exe.em
文件 381 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\DLTTRANS.exe.intermediate.manifest
文件 52 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\DLTTRANS.lastbuildstate
文件 7840 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\DLTTRANS.log
文件 9628 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\DLTTRANS.obj
文件 1179648 2014-03-29 16:29 DLTTRANS\DLTTRANS\Debug\DLTTRANS.pch
文件 206 2014-03-29 16:30 DLTTRANS\DLTTRANS\Debug\DLTTRANS_manifest.rc
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
文件 2 2014-04-09 21:17 DLTTRANS\DLTTRANS\Debug\li
............此处省略49个文件信息
相关资源
- 近景摄影测量-直接线性变换算法DLT含
- DLT/645规约 97/07通信协议调试器
- 摄影测量程序空间后方交会,前方交
- 国网电表编程软件DLT645-2007
- DLT/645规约 1997/2007通信协议调试器
- 配电自动化系统应用DLT634.5101-2002实施
- 《配电自动化系统应用DLT634.5104-2009实
- DLT645_2007forkeil4.rar
- IEC-61850中文完整版
- DLT 860 变电站通信网络和系统整理完全
- IEC61850协议——中文正式版现行DLT 8
- DLT860系列标准 中文版+英文原版 IEC6
- DLT698.45电能表管理软件(V1.1.0.67)发
- DLT698-45协议调试工具V1.0.rar
- DLT645_C_SC.rar
- 直接线性变换数字摄影测量dlt
- DLT645 协议解析 包含07 97
- 910107DLT698.45.rar
- DLT645抄表原码(VC)
- DLT860.10-2015.7z
- 西门子s7-200自由口与多功能电表DLT6
- 东方电子DF9300通讯管理机包含规约:
- 基于opencv2的DLT摄像机标定
- DLT/645规约 1997/2007通信协议调试器+虚
- DL69845.zip
- dlt645-2007抄表软件及报文
- DLT698.45面向对象协议
- DLT698.zip
- DLT698.45协议调试工具
- DLT698.45协议
评论
共有 条评论