📄 bindata2pgm.cc
字号:
const char *help = "\progname: bindata2pgm.cc\n\code2html: This program reads a bindata file (Torch binary dataset format) and saves pgm images.\n\version: Torch3 vision2.0, 2004-2005\n\(c) Sebastien Marcel (marcel@idiap.ch)\n";#include "DiskXFile.h"#include "ImageGray.h"#include "CmdLine.h"using namespace Torch;int main(int argc, char *argv[]){ char *filename; int width; int height; bool verbose; bool unnorm; CmdLine cmd; cmd.setBOption("write log", false); // cmd.info(help); cmd.addText("\nArguments:"); cmd.addSCmdArg("filename", &filename, "image file in"); cmd.addICmdArg("width", &width, "image width"); cmd.addICmdArg("height", &height, "image height"); cmd.addText("\nOptions:"); cmd.addBCmdOption("-verbose", &verbose, false, "verbose"); cmd.addBCmdOption("-unnorm", &unnorm, false, "unnormalize"); cmd.read(argc, argv); // int n_inputs; int n_patterns; DiskXFile *pf_in; pf_in = new DiskXFile(filename, "r"); if((pf_in == NULL) || (pf_in->is_opened == false)) { error("Opening bindata file %s", filename); return 0; } pf_in->read(&n_patterns, sizeof(int), 1); pf_in->read(&n_inputs, sizeof(int), 1); print("Reading bindata file (%s)\n", filename); print(" n_inputs = %d\n", n_inputs); print(" n_patterns = %d\n", n_patterns); if(n_inputs != width * height) error("Incorrect image size."); ImageGray *grayimage = new ImageGray(width, height); char str[250]; real *data = new real [n_inputs]; real norm_value = 255.0; if(unnorm) norm_value = 1.0; for(int j = 0 ; j < n_patterns ; j++) { pf_in->read(data, sizeof(real), n_inputs); grayimage->copyFrom(width, height, data, "float", norm_value); sprintf(str, "image%04d.pgm", j); grayimage->save(str); } delete [] data; delete grayimage; delete pf_in; return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -