⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bdaretrieval.cpp

📁 使用BDA实现三维模型相关反馈的算法 注:1、使用本系统必须在本地计算机上安装matlab 2、算法使用的三维模型特征向量是从PSB模型库中自动提取的DESIRE三维模型特征向量 3、本系统自带
💻 CPP
字号:
// BDAretrieval.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "BDAretrieval.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif



int allclassobjectmembers[MAXCLASSNUM][MAXOBJECTNUM];
int numofoneclass[MAXCLASSNUM];
double originfeaturesmatrix[OBJECTNUMBER][FEATHERLENTH];
double distancetrans[OBJECTNUMBER];
int positiveobjects[OBJECTNUMBER];
int negativeobjects[OBJECTNUMBER];
int pandnobjects[OBJECTNUMBER];
int pandnnum;
int positivenum;
int negativenum;
int round;
int nearestobjects[RETURNBACKNUM];
double mx[FEATHERLENTH];
double tempfeature[FEATHERLENTH];
double tempmatrix[FEATHERLENTH][FEATHERLENTH];
double Sb[FEATHERLENTH][FEATHERLENTH];
double Sw[FEATHERLENTH][FEATHERLENTH];
double tempsb[FEATHERLENTH*FEATHERLENTH];
double tempsw[FEATHERLENTH*FEATHERLENTH];
//double temptrans[MAXCLASSNUM*FEATHERLENTH];
//double trans[MAXCLASSNUM][FEATHERLENTH];
double ** trans;
double * transcut;
//搞一个动态长度,然后传参过去,把剪枝的个数留下来
double newfeaturesmatrix[OBJECTNUMBER][FEATHERLENTH];
//double ** newfeaturesmatrix;

// 唯一的应用程序对象

CWinApp theApp;

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
	int nRetCode = 0;

	// 初始化 MFC 并在失败时显示错误
	if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
	{
		// TODO: 更改错误代码以符合您的需要
		_tprintf(_T("致命错误: MFC 初始化失败\n"));
		nRetCode = 1;
	}
	else
	{
		// TODO: 在此处为应用程序的行为编写代码。
		CProcessControl processcontrolobject;
		processcontrolobject.readalllabelsfromfile("train.txt");
		processcontrolobject.readallfeaturesfromfile("featuresinfile.txt");
		CMatrixCompute matrixcomputeobject;
		cout<<"Load Complete!"<<endl;

		int classnum = 0,objectpos = 0;
		for (classnum=0;classnum<MAXCLASSNUM;classnum++)//对所有类遍历
		{
			for (objectpos=0;objectpos<numofoneclass[classnum];objectpos++)//对类中模型遍历
			{
				processcontrolobject.firstcomputedistance(allclassobjectmembers[classnum][objectpos]);

				pandnnum = 0;
				positivenum = 0;
				negativenum = 0;

				for (round=0;round< ROUNDNUM ;round++)//反复反馈
				{
					processcontrolobject.labelretrieval(classnum);

					matrixcomputeobject.computemx();
					matrixcomputeobject.computesb();
					matrixcomputeobject.computesw();

					matrixcomputeobject.computetransformmatrix();
					processcontrolobject.computenewfeaturematrix();
					processcontrolobject.newcomputedistance(allclassobjectmembers[classnum][objectpos]);


				}


				cout<<allclassobjectmembers[classnum][objectpos]<<endl;

			}
		}

	}

	return nRetCode;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -