1 #include "../lib/args.h" 2 #include "../lib/dataset.h" 3 #include "../lib/filesystem.h" 13 bool files_are_equal(
const std::string& filename1,
const std::string& filename2) {
16 std::ifstream file1(filename1, std::ifstream::binary);
17 std::ifstream file2(filename2, std::ifstream::binary);
19 std::istreambuf_iterator<char> begin1(file1);
20 std::istreambuf_iterator<char> begin2(file2);
21 bool equal = std::equal(begin1, std::istreambuf_iterator<char>(), begin2);
26 int main(
int argc,
const char* argv[]) {
27 get_args(argc, argv,
"dataset_parameters.json +x/-x/+y/-y [bad_files.txt] [dataset_group]");
35 int duplicates_count = 0;
36 std::vector<std::string> bad_files;
46 bad_files.push_back(cur_image_filename);
47 std::cout <<
"same images: " << prev <<
" and " << cur << std::endl;
54 bad_files.push_back(cur_depth_filename);
55 std::cout <<
"same depths: " << prev <<
" and " << cur << std::endl;
67 }
else if(mode ==
"-x") {
75 }
else if(mode ==
"+y") {
78 }
else if(mode ==
"-y") {
83 std::cout <<
"\nfound " << duplicates_count <<
" duplicates of out " << 2*datas.
x_count()*datas.
y_count() <<
" images" << std::endl;
85 if(! bad_files_filename.empty()) {
86 std::ofstream stream(bad_files_filename);
87 for(
const std::string& filename : bad_files) stream << filename <<
"\n";
bool file_exists(const std::string &filename)
std::string image_filename() const
int main(int argc, const char *argv[])
std::string enum_arg(const std::vector< std::string > &options)
dataset_view view(int x) const
std::size_t file_size(const std::string &filename)
std::string depth_filename() const
std::string out_filename_opt_arg(const std::string &def)
bool files_are_equal(const std::string &filename1, const std::string &filename2)
dataset_group group(const std::string &grp) const
std::string string_opt_arg(const std::string &def="")
void get_args(int argc, const char *argv[], const std::string &usage)