Forum

Author Topic: How to precisely scale a model with a standard license?  (Read 1512 times)

Ucodia

  • Newbie
  • *
  • Posts: 9
    • View Profile
How to precisely scale a model with a standard license?
« on: October 30, 2024, 02:08:04 AM »
Hi there,

I have been evaluating Metashape for an art project and eventually bought a standard edition license after being satisfied with the results I got.

I know exactly the distance that there should be between 2 points in my models but I cannot find a way to scale it precisely using Metashape standard, the only tool I found is the scale tool that shows an arbitrary scaling number, which is honestly useless since there is no actual real world unit being displayed.

So my question is how can I tell Metashape there is X distance between these 2 points so that it would scale it accordingly?

chrisd

  • Full Member
  • ***
  • Posts: 197
    • View Profile
Re: How to precisely scale a model with a standard license?
« Reply #1 on: October 30, 2024, 05:55:43 AM »
There is no measurement tool in Standard version, so you cannot calculate what the scaling should be. You would have to bring it into another application to do this. (ie Meshlab, Blender or another 3d modeling app that has measuring and scaling tools)

CheeseAndJamSandwich

  • Full Member
  • ***
  • Posts: 164
    • View Profile
    • Sketchfab Models
Re: How to precisely scale a model with a standard license?
« Reply #2 on: October 30, 2024, 09:53:10 AM »
Hi there,

I have been evaluating Metashape for an art project and eventually bought a standard edition license after being satisfied with the results I got.

I know exactly the distance that there should be between 2 points in my models but I cannot find a way to scale it precisely using Metashape standard, the only tool I found is the scale tool that shows an arbitrary scaling number, which is honestly useless since there is no actual real world unit being displayed.

So my question is how can I tell Metashape there is X distance between these 2 points so that it would scale it accordingly?
Using the workaround i detailed in my post about this, you can get it to whatever scale you want.
https://www.agisoft.com/forum/index.php?topic=13837.0

A trick is to play around to move the object so one of your 2 known points is on the 0,0 of the grid.  And do the same such that the 0.0 of the region is on the same 0,0 of the grid...  Set the view to Ortho, and switch between the right, front, top views with the 1, 3, & 7 keys.  Then play around rotating the object such that the 2nd known point lies on the x,y plane of the grid... Then rotate it to align with the x or y axis...  This allows you to get the scale spot to (using the 10x, 100x fudge to change your distance to m).  Then, as the region is also centred on the grid's 0,0, when you move the mouse to scale it to the 0.1 or whatever, you can set the grid back to 1m, and you'll see that the 10cm object is 1/10 the size of the grid... for a sanity check.
After you're happy with the scaling, rotate the object back to what looks correct.  You could play around with the grid & scaling again to the orientation spot on, if you knew the x,y,z coordinates of your 3 points...  lol.

It's a faff.  Which is why it'd be nice if we could have the simple, cut down referencing functionality i requested in my post.
My 'little' scan of our dive site, 'Manta Point'.  Mantas & divers photoshopped in for scale!
https://postimg.cc/K1sXypzs
Sketchfab Models:
https://sketchfab.com/cheeseandjamsandwich/models

Bzuco

  • Full Member
  • ***
  • Posts: 232
    • View Profile
Re: How to precisely scale a model with a standard license?
« Reply #3 on: October 30, 2024, 07:41:28 PM »
@Ucodia:

I am using this procedure, it seems to be a long list, but actually it is simple procedure :) :
1. enable grid in view
2. move the model so the one of your known point will be in [0,0,0]
3. move the center of the region also to [0,0,0]
4. rotate the model so the second of your known point will lay on X axis and scale the whole object roughly to the wanted size.
5. change four numbers (5.6 in my example on lines 6-9) to your distance value and save this text as e.g. scalebar.obj ...this is simple cube/block model in OBJ format.
Code: [Select]
o Cube
v 0.000000 0.000000 0.000000
v 0.000000 0.000000 0.100000
v 0.000000 0.100000 0.000000
v 0.000000 0.100000 0.100000
v 5.600000 0.000000 0.000000
v 5.600000 0.000000 0.100000
v 5.600000 0.100000 0.000000
v 5.600000 0.100000 0.100000
s 0
f 1 2 4 3
f 3 4 8 7
f 7 8 6 5
f 5 6 2 1
f 3 7 5 1
f 8 4 2 6
6. import scalebar.obj in metashape to your project, reset view, switch to othographics view using 5 numpad key.
7. zoom the view to the right side of the cube/block model so it touch right side of Metashape window
8. in workspace window switch from scalebar object to your original model and use scale model tool to scale the object so your second point also touches right side of Metashape window  :)
9. now your model is properly scaled and your two points have exactly the distance you want  :D

Tip: In orthographics view maybe your model will disappear during zooming. To avoid that hold shift + right mouse button and move mouse up/down...this will change camera clipping planes.

SimonBrown

  • Jr. Member
  • **
  • Posts: 83
    • View Profile
    • AccuPixel Ltd - Dealer and Training Centre
Re: How to precisely scale a model with a standard license?
« Reply #4 on: November 01, 2024, 02:47:37 PM »
First question: what is meant and required by precisely?

The path to precision starts before starting Metashape...and it would be a good idea to understand what the intention/purpose of the outputs are?

Both the methods described above will scale, but photogrammetry is a little more nuanced than merely asserting values to satisfy X,Y and Z.

Constraints can be weighted according to measured accuracy and together they work with camera optimisation to produce a far greater overall accuracy than is possible with simple, linear scaling.

This paper discusses this in more detail:

https://www.mdpi.com/2077-1312/12/2/280
Agisoft endorsed online Metashape training - see: https://accupixel.co.uk/metashape-training-courses