Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - forumname

Pages: [1] 2
General / select faces by camera visibility
« on: November 08, 2022, 08:01:27 PM »
Is there a method (GUI ok, API preferred) to select faces that are visible from a given camera?

General / animation from multiframe chunk
« on: October 11, 2022, 10:05:41 PM »
Is there an option/tutorial for creating an animation of a multiframe model?  For example, a simple top view while the timeline plays.

Python and Java API / Re: How to add marker using camera's coordinates.
« on: September 07, 2022, 03:32:00 PM »
I am following up on this thread because the solution does not seem to work as I expect. After adding the marker through the API, I get the projection rays through the other cameras, but not the marker location projections. But if I add a marker in the GUI at the same location, I do get the markers in the other cameras. What additional steps are needed to get the marker in the other camera projections?

General / depth maps coordinate shift
« on: August 19, 2022, 03:34:24 AM »
I have noticed that the images of depth maps are horizontally shifted compared to the masks or input image. Is it possible to obtain the translation so that the mask will overlay the depth map?

Code used to obtain each image:

Code: [Select]
import matplotlib.pyplot as plt

frame = chunk.frames[0]

img = frame.cameras[0].image()
img = np.frombuffer(img.tostring(), dtype=np.uint8).reshape(img.height,img.width)

depth = frame.depth_maps[frame.cameras[0]].image()
depth = np.frombuffer(depth.tostring(), dtype=np.float32).reshape(depth.height,depth.width)

mask = frame.masks[frame.cameras[0]].image()
mask = np.frombuffer(mask.tostring(), dtype=np.uint8).reshape(mask.height,mask.width)


EDIT: this is solved by undistorting the mask with the camera calibration.

Camera Calibration / Re: lens calibration improvement
« on: June 29, 2022, 06:40:28 PM »
Thank you Alexey, I am sending an email. I use 3-5 images of varying quality to understand the lens calibration pipeline.

Camera Calibration / lens calibration improvement
« on: June 28, 2022, 05:26:52 PM »
I am trying to calibrate lenses under difficult lighting conditions.

Although metashape finds the chessboard corners, it does not use them (all points grey). Insights as to why the corners are found but rejected?

Using the python API, is it possible to supply the corner locations to the lens calibrator? This would allow corner detection using opencv, or another method like AprilTags.

Feature Requests / Re: AprilTag
« on: May 20, 2022, 03:51:09 PM »
Bumping this request as probably one of the most important feature updates. ChArUco would be welcome as well.

Feature Requests / request doc.close()
« on: March 11, 2022, 06:45:53 PM »
This has been suggested previously, and would have saved me a lot of trouble because of unexpected behavior with and A method for terminating the connection to doc to ensure that all components have been written to that point would be helpful.

Feature Requests / Re: The option to only generate depth maps.
« on: March 11, 2022, 06:42:34 PM »
Is this request different from chunk.buildDepthMaps?

see also:

Can confirm this works on Ubuntu 21.10. Successfully installed numpy and opencv-python.

Hi Alexey,

Running from command line does not help. In fact, now the alignment is also not being, although it was before. Intermediate steps like duplicating chunks are still being run. Running the script from the Metashape GUI Run Script... dialogue also does not save the alignment.

I confirmed that the calibration can be manually processed within the Metashape GUI.

EDIT: I found the alignment is a separate issue caused by calling instead of The depth maps continue to be deleted after creation even if calling metashape from the terminal.

EDIT2: This has apparently been solved. Because of other code, I was calling before each new block. I guess reopening the document caused a conflict so Metashape didn't recognize the save and treated all the output files as temporary, so they were all deleted as usual when shutting down.

Camera Calibration / Re: Calibrate cameras only on markers
« on: March 09, 2022, 05:27:37 AM »
I've been wondering how to do this too. How do you 'delete all points'? I can only find the method for deleting dense clouds.

I am attempting to follow the instructions here for Linux.

I navigate to the directory and execute the directed command, but I get an error that the python 3.8 shared objected can't be found

>./metashape-pro/python/bin/python3.8 -m pip install numpy cv2 shutil

./metashape-pro/python/bin/python3.8: error while loading shared libraries: cannot open shared object file: No such file or directory

I also tried the libssl install as directed, without success.

I am working in a conda virtual environment, but that doesn't seem to make a difference.

Python and Java API / depth maps are not saved when looping over frames
« on: February 27, 2022, 08:36:44 PM »
I am building the depth maps through the python API (in Spyder IDE) within a loop, as follows:

for frame in chunk.frames:
    frame.buildDepthMaps(downscale=1, filter_mode=Ms.NoFiltering)

It completes and saves successfully, and says X depth maps were completed. I can verify that the depth_maps folder was created in the project.files directory. However, when I open the project within Metashape GUI, no depth maps are found. Furthermore, if I close the python console, the directories are all deleted immediately. This happens even if is called within the loop, or if the loop contains the dense cloud building:

frame.buildDenseCloud(point_confidence=True, keep_depth=True)

However, the depth maps can be properly saved when frames are called manually, e.g.,

chunk.frames[0].buildDepthMaps(downscale=1, filter_mode=Ms.NoFiltering)

The maps are also saved properly if created within the Metashape GUI.

General / Re: manually increasing tie points
« on: February 17, 2022, 02:49:24 AM »
I wasn't thinking of tie points as markers, but you're right, that is one option that is straightforward to implement.

Pages: [1] 2