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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to