# Forum

### Author Topic: automatic bounding box based on 4 camera positions?  (Read 3617 times)

#### 3dmij

• Newbie
• Posts: 30
• I make raspberry pi 3d Scanners
##### automatic bounding box based on 4 camera positions?
« on: April 02, 2015, 12:25:14 AM »
Hi,

I have a full body scanner (110 cameras) and am trying to automate to create a proper bounding box and then later to match the coordinate system to the bounding box. That last part works with the script publish on the wiki. (Thanks!)

My cameras are in an oval around the person. I want to use the location of 4 "corner" cameras in the buttom row to automatic set the bounding box.

I am able to center the bounding box based on these 4 cameras, but have a really hard time understaning the rotation numbers, this complex matrix.

Can someone please give me a better understanding how the rotation numbers work? Can I use certain points (camera locations) to calculate the correct rotation of the bounding box?

This is what I have so far: (to center the bounding box based on the 4 corner cameras)

Code: [Select]
`import PhotoScanimport mathdoc = PhotoScan.app.documentchunk = doc.chunks[0]newregion = chunk.regionprint ("Current region size: ", newregion.size)print ("Current region center:", newregion.center)print ("Current region rotation:", newregion.rot)for camera in chunk.cameras:    if camera.label == '211.jpg':        c1 = camera    if camera.label == '101.jpg':        c2 = camera    if camera.label == '151.jpg':        c3 = camera    if camera.label == '166.jpg':        c4 = cameraprint ("Camera centers:")print (c1.center)print (c2.center)print (c3.center)print (c4.center)print (" ")x = (c1.center[0] + c2.center[0] + c3.center[0] + c4.center[0] ) /4y = (c1.center[1] + c2.center[1] + c3.center[1] + c4.center[1] ) /4z = (c1.center[2] + c2.center[2] + c3.center[2] + c4.center[2] ) /4print ("X average: ", x)print ("Y average: ", y)print ("Z average: ", z)print (" ")m = PhotoScan.Matrix([c1.center, c3.center, c5.center])updateregion = PhotoScan.Region()updateregion.center = PhotoScan.Vector([x,y,z])updateregion.rot = mupdateregion.size = newregion.sizechunk.region = updateregion`

#### Alexey Pasumansky

• Agisoft Technical Support
• Hero Member
• Posts: 14487
##### Re: automatic bounding box based on 4 camera positions?
« Reply #1 on: April 25, 2015, 11:53:59 AM »
Hello 3dmij,

Could you please provide a simple scheme of the desired axis orientation according to the camera indices?
Best regards,
Alexey Pasumansky,
Agisoft LLC