/// Read from files the regions and their corresponding descriptors. bool Load( const std::string& sfileNameFeats, const std::string& sfileNameDescs) override { return loadFeatsFromFile(sfileNameFeats, vec_feats_) & loadDescsFromBinFile(sfileNameDescs, vec_descs_); }
/// Read from files the feats and their corresponding descriptors /// descriptor in binary to save place bool loadFromBinFile( const std::string& sfileNameFeats, const std::string& sfileNameDescs) { return loadFeatsFromFile(sfileNameFeats, _feats) & loadDescsFromBinFile(sfileNameDescs, _descs); }
TEST(OpenmvgDescriptor, BINARY) { // Create an input series of descriptor Descs_T vec_descs; for(int i = 0; i < CARD; ++i) { Desc_T desc; for (int j = 0; j < DESC_LENGTH; ++j) desc[j] = i*DESC_LENGTH+j; vec_descs.push_back(desc); } //Save them to a file saveDescsToBinFile("tempDescsBin.desc", vec_descs); //Read the saved data and compare to input (to check write/read IO) Descs_T vec_descs_read; loadDescsFromBinFile("tempDescsBin.desc", vec_descs_read); EXPECT_EQ(CARD, vec_descs_read.size()); for(int i = 0; i < CARD; ++i) { for(int j = 0; j < DESC_LENGTH; ++j) EXPECT_EQ(vec_descs[i][j], vec_descs_read[i][j]); } }
void hulo::readAKAZEBin(std::string filename, cv::Mat& mat) { std::vector<openMVG::features::Descriptor<unsigned char, 64>> vec_descs; loadDescsFromBinFile(filename, vec_descs); mat = cv::Mat::zeros(vec_descs.size(), 64, CV_8UC1); for (int i=0; i<vec_descs.size(); i++) { for (int j=0; j<vec_descs[i].size(); j++) { mat.at<uchar>(i, j) = vec_descs[i][j]; } } }