当前位置: 首页>>代码示例>>C++>>正文


C++ Packer::setAligned方法代码示例

本文整理汇总了C++中Packer::setAligned方法的典型用法代码示例。如果您正苦于以下问题:C++ Packer::setAligned方法的具体用法?C++ Packer::setAligned怎么用?C++ Packer::setAligned使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Packer的用法示例。


在下文中一共展示了Packer::setAligned方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main


//.........这里部分代码省略.........
#endif
	// {:パーサ文字列の開始
	// }:パーサ文字列の終了
	// |:セパレータ
	// ショートネーム,フルネーム,デフォルト値,ヘルプ文
	const char* keys = {
		"{i|input     |      |input files}"
		"{o|output    |      |output file}"
		"{p|param     |-1    |output parameter}"
		"{pad|padding |0     |padding pixel}"
		"{aln|aligned |false |aligned power of two boundary}"
		"{d|display   |false |display images}"
	};

	cv::CommandLineParser parser(argc, argv, keys);
	if(argc == 1){
		parser.printParams();
		return EXIT_SUCCESS;
	}

	std::string param_i = parser.get<std::string>("i");
	const std::string param_o = parser.get<std::string>("o");
	int param_p = parser.get<int>("p");
	const unsigned int param_pad = parser.get<unsigned int>("pad");
	const bool param_aln = parser.get<bool>("aln");
	const bool param_d = parser.get<bool>("d");

	if(param_i.empty()){
		std::cout << "[error] empty input data." << std::endl;
		return EXIT_FAILURE;
	}
	else{
#if 0
		std::stringstream ss(param_i);
		std::string temp;
		while(ss >> temp){
			input_images.push_back(temp);
		}
#else
		std::string temp;
		while(param_i.find(";", 0) != std::string::npos){
			size_t pos = param_i.find(";", 0);
			temp = param_i.substr(0, pos);
			param_i.erase(0, pos + 1);
			input_images.push_back(temp);
		}
#endif
	}
	// 出力設定
	padding = param_pad;
	aligned = param_aln;
	output_path = param_o;
	if(!output_path.empty()){
		ofmt_type = getExtension(output_path);
		if(ofmt_type == OutputFormat_Unsupported){
			std::cerr << "[error] unsupported output format." << std::endl;
			return EXIT_FAILURE;
		}
		if(ofmt_type == OutputFormat_Jpg){
			params.push_back(CV_IMWRITE_JPEG_QUALITY);
			param_p = (param_p == -1)? 95 : param_p;	// 0-100(default=95)
			params.push_back(param_p);
		}
		else
		if(ofmt_type == OutputFormat_Png){
			params.push_back(CV_IMWRITE_PNG_COMPRESSION);
			param_p = (param_p == -1)? 3 : param_p;	// 0-9(default=3)
			params.push_back(param_p);
		}
//		else
//		if(output_type == Output_Pnm){
//			params.push_back(CV_IMWRITE_PXM_BINARY);
//			param_p = (param_p == -1)? 1 : param_p;	// 0:ascii 1:binary(default=1)
//			params.push_back(param_p);
//		}
		om_type = (param_d)? OutputMode_Both : OutputMode_WriteOnly;
	}
	else{
		ofmt_type = OutputFormat_Png;
		om_type = OutputMode_DisplayOnly;
	}

	// 準備を行う
	setup();

	// パッキング
	packer.setPadding(padding);
	packer.setAligned(aligned);
	if(!packer.pack(inputs)){
		std::cerr << "[error] failed to pack." << std::endl;
		return EXIT_FAILURE;
	}

	// 画像の合成
	combineImages();

	cv::waitKey(0);

	return EXIT_SUCCESS;
}
开发者ID:Hasenpfote,项目名称:2dpacker,代码行数:101,代码来源:main.cpp


注:本文中的Packer::setAligned方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。