• 大小: 1.21MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-31
  • 语言: 其他
  • 标签: dlt  

资源简介

包含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.embed.manifest

     文件        472  2014-03-29 16:30  DLTTRANS\DLTTRANS\Debug\DLTTRANS.exe.embed.manifest.res

     文件        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\link-cvtres.read.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link-cvtres.write.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.1908-cvtres.read.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.1908-cvtres.write.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.1908.read.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.1908.write.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.21928-cvtres.read.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.21928-cvtres.write.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.21928.read.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.21928.write.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.4540-cvtres.read.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.4540-cvtres.write.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.4540.read.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.4540.write.1.tlog

     文件          2  2014-04-09 21:17  DLTTRANS\DLTTRANS\Debug\link.5808-cvtres.read.1.tlog

............此处省略49个文件信息

评论

共有 条评论