vocabtree  0.0.1
compute_sift_simple.cxx File Reference
#include "tests_config.hpp"
#include <config.hpp>
#include <utils/filesystem.hpp>
#include <utils/dataset.hpp>
#include <utils/vision.hpp>
#include <utils/logger.hpp>
#include <iostream>
Include dependency graph for compute_sift_simple.cxx:

Go to the source code of this file.

Functions

_INITIALIZE_EASYLOGGINGPP int main (int argc, char *argv[])
 

Function Documentation

_INITIALIZE_EASYLOGGINGPP int main ( int  argc,
char *  argv[] 
)

Definition at line 20 of file compute_sift_simple.cxx.

References vision::compute_sparse_sift_feature(), filesystem::create_file_directory(), filesystem::file_exists(), SimpleDataset::SimpleImage::location(), s_oxfordmini_data_dir, s_oxfordmini_database_location, and filesystem::write_cvmat().

20  {
21  LINFO << "HJ";
22 #if ENABLE_MULTITHREADING && ENABLE_MPI
23  MPI::Init(argc, argv);
24  int rank = MPI::COMM_WORLD.Get_rank();
25  if(rank == 0) {
26 #endif
28  LINFO << simple_dataset;
29 #if ENABLE_MULTITHREADING && ENABLE_OPENMP
30 #pragma omp parallel for schedule(dynamic)
31 #endif
32  for (int64_t i = 0; i < simple_dataset.num_images(); i++) {
33 
34  std::shared_ptr<SimpleDataset::SimpleImage> image = std::static_pointer_cast<SimpleDataset::SimpleImage>(simple_dataset.image(i));
35  if (image == nullptr) continue;
36 
37  const std::string &keypoints_location = simple_dataset.location(image->feature_path("keypoints"));
38  const std::string &descriptors_location = simple_dataset.location(image->feature_path("descriptors"));
39  // if (filesystem::file_exists(keypoints_location) && filesystem::file_exists(descriptors_location)) continue;
40 
41  const std::string &image_location = simple_dataset.location(image->location());
42 
43  if (!filesystem::file_exists(image_location)) continue;
44 
45  cv::Mat im = cv::imread(image_location, cv::IMREAD_GRAYSCALE);
46 
47  cv::Mat keypoints, descriptors;
48  if (!vision::compute_sparse_sift_feature(im, nullptr, keypoints, descriptors)) continue;
49 
50  filesystem::create_file_directory(keypoints_location);
51  filesystem::create_file_directory(descriptors_location);
52 
53  filesystem::write_cvmat(keypoints_location, keypoints);
54  filesystem::write_cvmat(descriptors_location, descriptors);
55  }
56 #if ENABLE_MULTITHREADING && ENABLE_MPI
57  }
58  MPI::Finalize();
59 #endif
60  return 0;
61 }