Skip to content

Conversation

@alexandreflusin
Copy link
Collaborator

In order to implement the re-projection for the 3d video, instead of having the 2d video play on top of the 3d plot, the plot_2d method of the Core class was modified to take an extra boolean argument that distinguishes between plotting the re-projection of the 3d points and plotting 2d points. If reprojection is true it passes the 3d points from the camNet attribute of the class to the plot_2d method of the Camera class as modified here (semihgunel/PyBundleAdjustment#2 (comment)), which is able to handle the re-projection and the plotting of 2d points. The video.py file was also modified with the _compute_2d_img also taking a reprojection argument (by default true) that it passes to the Core.plot_2d method.

Comment on lines 314 to +320
if with_corrections:
pts2d = self.corrected_points2d(cam_id, img_id)
pts = self.corrected_points2d(cam_id, img_id)
else:
pts2d = None
pts = None

if reprojection:
pts = np.copy(self.camNet.points3d)
Copy link
Member

@jasper-tms jasper-tms Jul 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we raise an error if the user asks for with_corrections=True and reprojection=True? I don't understand exactly what happens in self.corrected_points2d, but I would guess these two arguments are incompatible, is that true? If so, adding if with_corrections and reprojection: raise ValueError('"with_corrections" and "reprojection" cannot both be set to True') near the start of this function would be great.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants