use main image describer as reference.
This commit is contained in:
@ -72,16 +72,18 @@ Frame *new_frame_from_handle(FILE *stream, int w, int h, int depth)
|
||||
return f;
|
||||
}
|
||||
|
||||
void clean_frame(Frame *f) {
|
||||
void clean_frame(Frame *f)
|
||||
{
|
||||
fclose(f->stream);
|
||||
free(f);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
DartOpenMvg::Frame::Frame(const DartOpenMvg::Frame &frame) {
|
||||
DartOpenMvg::Frame::Frame(const DartOpenMvg::Frame &frame)
|
||||
{
|
||||
cFrame = frame.cFrame;
|
||||
mRegions = std::unique_ptr<openMVG::features::Regions>(frame.mRegions.get());
|
||||
// mRegions = std::unique_ptr<openMVG::features::Regions>(frame.mRegions.get());
|
||||
}
|
||||
|
||||
openMVG::image::Image<u_char> DartOpenMvg::imageFromFrame(const CFrame *frame)
|
||||
@ -107,20 +109,15 @@ DartOpenMvg::Frames::Frames(openMVG::sfm::Bundle_Adjustment_Ceres::BA_Ceres_opti
|
||||
mAdjustment = openMVG::sfm::Bundle_Adjustment_Ceres(options);
|
||||
}
|
||||
|
||||
void DartOpenMvg::Frames::add_frame(FILE *handle, int w, int h, int depth) {
|
||||
void DartOpenMvg::Frames::add_frame(FILE *handle, int w, int h, int depth)
|
||||
{
|
||||
CFrame *f = new_frame_from_handle(handle, w, h, depth);
|
||||
mFrames.push_back(
|
||||
Frame(f)
|
||||
);
|
||||
Frame(f));
|
||||
}
|
||||
|
||||
void DartOpenMvg::Frames::computeMatches()
|
||||
{
|
||||
#ifdef OPENMVG_USE_OPENMP
|
||||
OPENMVG_LOG_INFO << "Using the OPENMP thread interface";
|
||||
const bool b_multithreaded_pair_search = (eMatcherType_ == CASCADE_HASHING_L2);
|
||||
// -> set to true for CASCADE_HASHING_L2, since OpenMP instructions are not used in this matcher
|
||||
#endif
|
||||
|
||||
// Match the pairs as a sequence
|
||||
// Within openMvg::matching_image_collection::Matcher
|
||||
@ -129,16 +126,17 @@ void DartOpenMvg::Frames::computeMatches()
|
||||
for (size_t i = 0; i < mFrames.size() - 1; ++i)
|
||||
{
|
||||
const Frame &frame1 = mFrames[i];
|
||||
const Frame &frame2 = mFrames[i+1];
|
||||
auto *regions1 = frame1.mRegions.get();
|
||||
auto *regions2 = frame2.mRegions.get();
|
||||
if (!regions1) {
|
||||
const Frame &frame2 = mFrames[i + 1];
|
||||
auto regions1 = frame1.mRegions.get();
|
||||
auto regions2 = frame2.mRegions.get();
|
||||
if (!regions1)
|
||||
{
|
||||
std::string msg = std::string("Did you remember to calculate regions for frame ") + std::to_string(i) + "?";
|
||||
throw std::out_of_range(msg);
|
||||
}
|
||||
|
||||
regions1->Load();
|
||||
std::cerr << "Loading " << std::to_string(regions1->RegionCount()) << " regions" << endl;
|
||||
// regions1->Load();
|
||||
std::cerr << "Loading " << std::to_string(regions1->RegionCount()) << " regions" << std::endl;
|
||||
|
||||
auto is_binary = regions1->IsBinary();
|
||||
|
||||
@ -147,10 +145,6 @@ void DartOpenMvg::Frames::computeMatches()
|
||||
openMVG::matching::RegionMatcherFactory(openMVG::matching::EMatcherType::HNSW_L2, *regions1);
|
||||
if (!matcher)
|
||||
continue;
|
||||
|
||||
#ifdef OPENMVG_USE_OPENMP
|
||||
#pragma omp parallel for schedule(dynamic) if (b_multithreaded_pair_search)
|
||||
#endif
|
||||
openMVG::matching::IndMatches vec_putative_matches;
|
||||
matcher->MatchDistanceRatio(0.5, *regions2, vec_putative_matches);
|
||||
if (vec_putative_matches.empty())
|
||||
@ -186,12 +180,17 @@ void DartOpenMvg::Frame::calculateFeatures()
|
||||
{
|
||||
using namespace openMVG::image;
|
||||
using namespace openMVG::features;
|
||||
auto desc = SIFT_Anatomy_Image_describer(SIFT_Anatomy_Image_describer::Params());
|
||||
auto image = imageFromFrame(cFrame);
|
||||
mRegions = desc.Describe(image);
|
||||
MvgOverride::AKAZE_OCV_Image_describer desc;
|
||||
auto im = imageFromFrame(cFrame);
|
||||
mRegions = std::make_shared<Regions>(std::move(desc.Describe(im)));
|
||||
|
||||
if (!mRegions.get()) {
|
||||
throw std::range_error("Could not set regions member.");
|
||||
}
|
||||
}
|
||||
|
||||
void DartOpenMvg::Frames::resection() {
|
||||
void DartOpenMvg::Frames::resection()
|
||||
{
|
||||
// openMVG::tracks::TracksUtilsMap::GetFeatIndexPerViewAndTrackId(
|
||||
// mTracks;
|
||||
// )
|
||||
|
Reference in New Issue
Block a user