Example #1
0
/// parses command line arguments
void parse_args(int argc, char** argv) {
	try {  
        TCLAP::CmdLine cmd("view", ' ', "0.0");
        
        TCLAP::ValueArg<int> resolutionArg("r","resolution","Image resolution",false,512,"resolution",cmd);
        TCLAP::ValueArg<int> samplesArg("s","samples","Image samples",false,4,"samples",cmd);
        
        TCLAP::SwitchArg hudArg("j","hud","HUD",cmd);
        TCLAP::SwitchArg screenshotAndExitArg("i","screenshotAndExit","Screenshot and exit",cmd);
        TCLAP::ValueArg<float> timeArg("t","time","Time advance (delays screenshot and exit)",false,0,"seconds",cmd);
        
        TCLAP::UnlabeledValueArg<string> filenameScene("scene","Scene filename",true,"","scene",cmd);
        TCLAP::UnlabeledValueArg<string> filenameImage("image","Image filename",false,"","image",cmd);
        
        cmd.parse( argc, argv );
        
        if(resolutionArg.isSet()) draw_opts.res = resolutionArg.getValue();
        if(samplesArg.isSet()) draw_opts.samples = samplesArg.getValue();
        if(hudArg.isSet()) hud = not hudArg.getValue();
        if(screenshotAndExitArg.isSet()) screenshotAndExit = screenshotAndExitArg.getValue();
        if(timeArg.isSet()) time_init_advance = timeArg.getValue();
        
        filename_scene = filenameScene.getValue();
        if(filenameImage.isSet()) filename_image = filenameImage.getValue();
        else { filename_image = filename_scene.substr(0,filename_scene.length()-4)+"png"; }
	} catch (TCLAP::ArgException &e) { 
        std::cerr << "error: " << e.error() << " for arg " << e.argId() << std::endl; 
    }
}
Example #2
0
/// parse command line arguments
void parse_args(int argc, char** argv) {
	try {  
        TCLAP::CmdLine cmd("trace", ' ', "0.0");

        TCLAP::ValueArg<int> resolutionArg("r","resolution","Image resolution",false,0,"int",cmd);
        TCLAP::ValueArg<int> samplesArg("s","samples","Pixel samples",false,0,"int",cmd);
        
        TCLAP::SwitchArg progressiveArg("P","progressive","Progressive Rendering",cmd);
        
        TCLAP::SwitchArg distributionArg("d","distribution_raytrace","Distribution Raytracing",cmd);
        TCLAP::SwitchArg pathtraceArg("p","pathtrace","Pathtracing",cmd);
        
        TCLAP::UnlabeledValueArg<string> filenameScene("scene","Scene filename",true,"","filename",cmd);
        TCLAP::UnlabeledValueArg<string> filenameImage("image","Image filename",false,"","filename",cmd);
        
        cmd.parse( argc, argv );

        if(pathtraceArg.isSet()) pathtrace = pathtraceArg.getValue();
        if(distributionArg.isSet()) distribution = distributionArg.getValue();
        
        if(resolutionArg.isSet()) resolution = resolutionArg.getValue();
        if(samplesArg.isSet()) samples = samplesArg.getValue();
        if(progressiveArg.isSet()) progressive = progressiveArg.getValue();
        
        filename_scene = filenameScene.getValue();
        if(filenameImage.isSet()) filename_image = filenameImage.getValue();
        else { filename_image = filename_scene.substr(0,filename_scene.length()-4)+"png"; }
	} catch (TCLAP::ArgException &e) { 
        std::cerr << "error: " << e.error() << " for arg " << e.argId() << std::endl; 
    }
}
Example #3
0
int main(int argc, char *argv[])
{	
	std::string filenameImage("small.png");
	double errorThreshold = 10.;
	int channel = 0;
	double gamma = 1.0;

	std::string histogramsTraining("training/training.dat");
	std::string outputPath("");


	// initialize LPIP detector
	LPIPDetector detector(filenameImage, channel, errorThreshold, 3, gamma);
	std::cout << "Detecting LISOs in the image..." << std::endl;
	detector.detect(outputPath);
	std::vector<LISO> lisoSet = detector.getLisoSet();
		
	// save LISO map 
	cv::Mat1f lisoMap = detector.getLisoMap();
	std::stringstream path1;
	path1 << outputPath << "liso_map.png";
	std::cout << "Save LISO map to " << path1.str() << std::endl;
	imwrite(path1.str(), lisoMap*255);

	// compute features and save histograms as images
	Trainer trainer;
	trainer.computeFeatures(lisoSet, lisoMap);
	std::cout << "Computing RQ Histogram..." << std::endl;
	Classifier classifier(histogramsTraining);
	classifier.createHistRQ(100, 50, lisoSet, false, "RQ_histogram");
	classifier.createHistRQ(100, 50, lisoSet, true, "RQ_histogram_weighted");

	
	return 0;
}