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

📄 pgmlist2bindata.cc

📁 torch tracking code, it is a good code
💻 CC
字号:
const char *help = "\progname: pgmlist2bindata.cc\n\code2html: This program creates a bindata file from a list of pgm images.\n\version: Torch3 vision2.0, 2004\n\(c) Sebastien Marcel (marcel@idiap.ch)\n";#define NBFILES_MAX 5000#include "DiskXFile.h"#include "FileListCmdOption.h"#include "ImageGray.h"#include "CmdLine.h"using namespace Torch;int main(int argc, char *argv[]){	char *filename_out;	bool norm;	bool verbose;		FileListCmdOption filelist("file name", "the list files or one data file");        filelist.isArgument(true);		CmdLine cmd;	cmd.setBOption("write log", false);	cmd.info(help);	cmd.addText("\nArguments:");	cmd.addCmdOption(&filelist);	cmd.addSCmdArg("filename out", &filename_out, "output bindata filename");	cmd.addText("\nOptions:");	cmd.addBCmdOption("-norm", &norm, false, "normalize images");	cmd.addBCmdOption("-verbose", &verbose, false, "verbose");	cmd.read(argc, argv);	//	if(verbose)	{		print(" + n_filenames = %d\n", filelist.n_files);		for(int i = 0 ; i < filelist.n_files ; i++)			print("   filename[%d] = %s\n", i, filelist.file_names[i]);	}  	if(filelist.n_files > NBFILES_MAX)	{		error("Cannot merge more than %d files", NBFILES_MAX);				return 1;			}        	ImageGray *grayimage = NULL;	DiskXFile *fileout = NULL;    	if(verbose) print("Merging %d files :\n", filelist.n_files);  	fileout = new DiskXFile(filename_out, "w");  	if(fileout == NULL)	{      		error("Opening BinData file %s", filename_out);            		return 1;	}  	// Reading headers  	int P = filelist.n_files;	int n_inputs;  	for(int i = 0 ; i < filelist.n_files ; i++)	{				grayimage = new ImageGray(filelist.file_names[i]);		if(verbose)		{			print("Reading image file (%s)\n", filelist.file_names[i]);			print("   width = %d\n", grayimage->width);			print("   height = %d\n", grayimage->height);		}		if(i == 0)			n_inputs = grayimage->width * grayimage->height;		else		{			if(n_inputs != grayimage->width * grayimage->height)			{				delete fileout;				delete grayimage;				error("Files does not have the same size");				return 1; 				  			}		}						delete grayimage;		grayimage = NULL;	}  	fileout->write(&P, sizeof(int), 1);	fileout->write(&n_inputs, sizeof(int), 1);	if(verbose)	{  		print("\n");    		print("Writing bindata file :\n");    		print("   n_inputs : %d\n", n_inputs);  		print("   n_patterns : %d\n", P);  	}	  	for(int i = 0 ; i < filelist.n_files ; i++)	{				grayimage = new ImageGray(filelist.file_names[i]);		if(norm)		{			for(int j = 0 ; j < n_inputs ; j++)			{				real z_ = grayimage->data[j];				z_ /= 255.0;				int a = (int) (z_ * 255.0);				int b = (int) grayimage->data[j];				if(a != b) 					error("%d != %d", a, b);				grayimage->data[j] = z_;			}		}				fileout->write(grayimage->data, sizeof(real), n_inputs);		delete grayimage;		grayimage = NULL;	}		delete fileout;	return 0;}   

⌨️ 快捷键说明

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