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

📄 pca2pgm.cc

📁 torch tracking code, it is a good code
💻 CC
字号:
const char *help = "\progname: pca2pgm.cc\n\code2html: This program reads a PCA model and saves eigenfaces.\n\version: Torch3 vision2.0, 2003-2005\n\(c) Sebastien Marcel (marcel@idiap.ch)\n";#include "PCAMachine.h"#include "ImageGray.h"#include "CmdLine.h"using namespace Torch;int main(int argc, char *argv[]){	char *model_filename;	int width, height;	int n_eigenface;	real variance;	bool verbose;	int verbose_level;	CmdLine cmd;	cmd.setBOption("write log", false);		cmd.info(help);	cmd.addText("\nArguments:");	cmd.addSCmdArg("model filename", &model_filename, "PCA model filename");	cmd.addICmdArg("width", &width, "width");	cmd.addICmdArg("height", &height, "height");	cmd.addText("\nOptions:");	cmd.addICmdOption("-eigenface", &n_eigenface, 2, "number of eigenface");	cmd.addRCmdOption("-variance", &variance, 0.95, "variance");	cmd.addBCmdOption("-verbose", &verbose, false, "verbose");	cmd.addICmdOption("-verbose_level", &verbose_level, 0, "verbose level");	cmd.read(argc, argv);	int n_input = width * height;	//	PCAMachine *pca_machine = NULL;	pca_machine = new PCAMachine(n_input);	//	print("Loading PCA model: %s ...\n", model_filename);   	pca_machine->load(model_filename, NULL);	   	//	pca_machine->setIOption("verbose_level", verbose_level);	pca_machine->setROption("variance", variance);	pca_machine->init();	float *eigenface = new float [n_input];	ImageGray *image = new ImageGray(width, height);		image->copyFrom(width, height, pca_machine->Xm, "float", 1.0);	image->save("mean.pgm");	for(int p = 0 ; p < n_eigenface ; p++)	{	   	if(verbose)			print("Eigenvalue [%d] : %g\n", p, pca_machine->eigenvalues[p]);	   	float min_ = 1000.0;		float max_ = -1000.0;				for(int i = 0 ; i < n_input ; i++)		{	   		eigenface[i] = pca_machine->eigenvectors[i][p];			if(eigenface[i] < min_) min_ = eigenface[i];			if(eigenface[i] > max_) max_ = eigenface[i];		}				for(int i = 0 ; i < n_input ; i++)		   	eigenface[i] = (eigenface[i] - min_) / (max_ - min_);		image->copyFrom(width, height, eigenface, "float", 1.0);		char str[256];		sprintf(str, "eigenface%04d.pgm", p);		image->save(str);	}	//	delete image;	delete [] eigenface;	delete pca_machine;		  	return 0;}   

⌨️ 快捷键说明

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