bool VilBaplSIFT::readImageAndSIFT(const char *file, vcl_string & imageName, vcl_string & siftFile) { FILE *pf = fopen(file, "r"); if (!pf) { printf("Error: canot open %s\n", file); return false; } char buf1[1024] = {NULL}; char buf2[1024] = {NULL}; fscanf(pf, "%s %s", buf1, buf2); imageName = vcl_string(buf1); siftFile = vcl_string(buf2); fclose(pf); return true; }
void VglPlus::loadPointVector(const char *fileName, vcl_string &imageName, vcl_vector<vgl_point_2d<double>> &wldPts, vcl_vector< vgl_point_2d<double> > &imgPts) { assert(wldPts.size() == 0); assert(imgPts.size() == 0); vsl_b_ifstream bfs_in(fileName); assert(bfs_in.is().good() == true); char strName[1024] = {NULL}; vsl_b_read(bfs_in, strName); imageName = vcl_string(strName); int num = 0; vsl_b_read(bfs_in, num); wldPts.resize(num); imgPts.resize(num); for (int i = 0; i<num; i++) { vsl_b_read(bfs_in, wldPts[i]); } for (int i = 0; i<num; i++) { vsl_b_read(bfs_in, imgPts[i]); } bfs_in.close(); }
bool VilGMM::read(const char *fileName) { assert(fileName); if (gmm_) { delete gmm_; gmm_ = NULL; } vsl_add_to_binary_loader(vpdfl_pc_gaussian()); vsl_add_to_binary_loader(vpdfl_axis_gaussian()); vsl_add_to_binary_loader(vpdfl_mixture()); vsl_add_to_binary_loader(vpdfl_gaussian()); vsl_b_ifstream bfs_in(fileName); vsl_b_read(bfs_in, gmm_); bfs_in.close(); if (gmm_->is_a() == vcl_string("vpdfl_mixture")) { vpdfl_mixture *pmix = static_cast<vpdfl_mixture *>(gmm_); comp_n_ = pmix->n_components(); verbose_ = true; } else { comp_n_ = -1; verbose_ = true; } return true; }