[Bf-blender-cvs] [b2aec13] soc-2016-multiview: debugging in progress
Tianwei Shen
noreply at git.blender.org
Tue Jun 28 18:37:08 CEST 2016
Commit: b2aec13185b290915ffb6b3fd9ec3a037f9e1862
Author: Tianwei Shen
Date: Wed Jun 29 00:36:55 2016 +0800
Branches: soc-2016-multiview
https://developer.blender.org/rBb2aec13185b290915ffb6b3fd9ec3a037f9e1862
debugging in progress
===================================================================
M intern/libmv/intern/reconstructionN.cc
M intern/libmv/libmv/autotrack/intersect.cc
M intern/libmv/libmv/autotrack/reconstruction.cc
M intern/libmv/libmv/autotrack/reconstruction.h
M source/blender/blenkernel/intern/tracking_correspondence.c
===================================================================
diff --git a/intern/libmv/intern/reconstructionN.cc b/intern/libmv/intern/reconstructionN.cc
index b40c89f..ef19d8a 100644
--- a/intern/libmv/intern/reconstructionN.cc
+++ b/intern/libmv/intern/reconstructionN.cc
@@ -238,6 +238,9 @@ libmv_ReconstructionN** libmv_solveMultiviewReconstruction(
all_libmv_reconstruction[0]->is_valid = false;
return all_libmv_reconstruction;
}
+ std::cout << "[libmv_solveMultiviewReconstruction] reconstruct "
+ << reconstruction.GetReconstructedCameraNum()
+ << " cameras after ReconstructTwoFrames" << std::endl;
// bundle the two-view initial reconstruction
// (it is redundant for now since now 3d point is added at this stage)
//if(!mv::EuclideanBundleAll(all_normalized_tracks, &reconstruction)) {
@@ -252,7 +255,7 @@ libmv_ReconstructionN** libmv_solveMultiviewReconstruction(
}
/* Refinement/ */
- // TODO(Tianwei): current api allows only one camera intrinsics
+ //TODO(Tianwei): current api allows only one camera intrinsics
if (libmv_reconstruction_options->all_refine_intrinsics[0]) {
libmv_solveRefineIntrinsics(
all_normalized_tracks,
@@ -264,7 +267,7 @@ libmv_ReconstructionN** libmv_solveMultiviewReconstruction(
all_libmv_reconstruction[0]->intrinsics);
}
- /* Set reconstruction scale to unity. */
+ ///* Set reconstruction scale to unity. */
mv::EuclideanScaleToUnity(&reconstruction);
/* Finish reconstruction. */
diff --git a/intern/libmv/libmv/autotrack/intersect.cc b/intern/libmv/libmv/autotrack/intersect.cc
index cc8ee89..614eec9 100644
--- a/intern/libmv/libmv/autotrack/intersect.cc
+++ b/intern/libmv/libmv/autotrack/intersect.cc
@@ -91,7 +91,6 @@ bool EuclideanIntersect(const vector<Marker> &markers,
libmv::P_From_KRt(K, camera->R, camera->t, &P);
cameras.push_back(P);
}
- std::cout << "[Intersect] camera size: " << cameras.size() << std::endl;
// Stack the 2D coordinates together as required by NViewTriangulate.
Mat2X points(2, markers.size());
diff --git a/intern/libmv/libmv/autotrack/reconstruction.cc b/intern/libmv/libmv/autotrack/reconstruction.cc
index 4827aa8..e077cb1 100644
--- a/intern/libmv/libmv/autotrack/reconstruction.cc
+++ b/intern/libmv/libmv/autotrack/reconstruction.cc
@@ -115,7 +115,7 @@ bool ReconstructTwoFrames(const vector<Marker> &markers,
reconstruction->AddCameraPose(pose1);
reconstruction->AddCameraPose(pose2);
- std::cout << "From two frame reconstruction got:\nR:\n" << R << "\nt:" << t.transpose();
+ LG << "From two frame reconstruction got:\nR:\n" << R << "\nt:" << t.transpose();
return true;
}
@@ -168,6 +168,8 @@ const CameraPose* Reconstruction::CameraPoseForFrame(int clip, int frame) const
return NULL;
if (camera_poses_[clip].size() <= frame)
return NULL;
+ if (camera_poses_[clip][frame].clip == -1) // this CameraPose is uninitilized
+ return NULL;
return (const CameraPose*) &(camera_poses_[clip][frame]);
}
@@ -203,4 +205,15 @@ const vector<Point>& Reconstruction::AllPoints() const {
return points_;
}
+int Reconstruction::GetReconstructedCameraNum() const {
+ int reconstructed_num = 0;
+ for(int i = 0; i < camera_poses_.size(); i++) {
+ for(int j = 0; j < camera_poses_[i].size(); j++) {
+ if(camera_poses_[i][j].clip != -1 && camera_poses_[i][j].frame != -1)
+ reconstructed_num++;
+ }
+ }
+ return reconstructed_num;
+}
+
} // namespace mv
diff --git a/intern/libmv/libmv/autotrack/reconstruction.h b/intern/libmv/libmv/autotrack/reconstruction.h
index 774d2bd..af04871 100644
--- a/intern/libmv/libmv/autotrack/reconstruction.h
+++ b/intern/libmv/libmv/autotrack/reconstruction.h
@@ -83,6 +83,7 @@ public:
int GetClipNum() const;
int GetAllPoseNum() const;
+ int GetReconstructedCameraNum() const;
private:
// Indexed by CameraPose::intrinsics. Owns the intrinsics objects.
diff --git a/source/blender/blenkernel/intern/tracking_correspondence.c b/source/blender/blenkernel/intern/tracking_correspondence.c
index 4d67f42..a3cd8a3 100644
--- a/source/blender/blenkernel/intern/tracking_correspondence.c
+++ b/source/blender/blenkernel/intern/tracking_correspondence.c
@@ -175,6 +175,7 @@ static struct libmv_TracksN *libmv_multiview_tracks_new(MovieClip *clip, int cli
((track->flag & TRACK_DISABLE_GREEN) ? LIBMV_MARKER_CHANNEL_G : 0) |
((track->flag & TRACK_DISABLE_BLUE) ? LIBMV_MARKER_CHANNEL_B : 0);
+ printf("add makers %d, %d, %d\n", clip_id, marker->framenr, global_track_index[tracknr]);
libmv_tracksAddMarkerN(tracks, &libmv_marker);
}
}
@@ -241,7 +242,6 @@ static int libmv_CorrespondencesFromTracking(ListBase *tracking_correspondences,
libmv_AddCorrespondenceN(libmv_correspondences, clip1, clip2, track1, track2);
num_valid_corrs++;
}
- printf("%s %d %d %d %d\n", corr->name, clip1, clip2, track1, track2);
// change the global index of clip2-track2 to clip1-track1
global_track_index[clip2][track2] = global_track_index[clip1][track1];
corr = corr->next;
More information about the Bf-blender-cvs
mailing list