0_0
0_0

Reputation: 107

object dimensions in image according to camera distance faraway

I have a camera placed 10 meters faraway from a portrait (rectangle) having width = 50cm and height = 15cm, I want to get the dimensions of this portrait inside the image captured. The image captured has width=800 px and height=600 px.

How can I calculate the dimensions of the portrait inside the image? Any help please?

Upvotes: 0

Views: 999

Answers (2)

volcEmpire
volcEmpire

Reputation: 11

I agree with Timothy's answer, in that you need to the know the camera's field of view (FOV). I'm not sure I totally follow/agree with his method however. I think this is similar, but it differs, the FOV needs to be divided by two to split our view into two right-angled triangles. Use tan(x)=opposite/adjacent

tan(FOV/2) = (IW/2) / (Dist * 100)

where IW is the true image width (must divide by two as we are only finding finding half of the width with the right-angled triangle), Dist is the distance from the camera to the portrait (converted to cm).

Rearrange that to find the Width of the entire image (IW):

IW = tand(FOV/2) * (2*Dist*100)

You can now work out the width of each pixel (PW) using the number of pixels in the image width (800 for you).

PW = IW / NumPixels
PW = IW / 800

Now divide the true width by this value to find the number of pixels.

PixelWidth = TrueWidth / PW

The same can be done for the height, but you need your camera's field of view. Im not sure this is the same a Timothy's answer, but I'm pretty sure this is correct.

Upvotes: 0

Timothy Shields
Timothy Shields

Reputation: 79581

I am assuming the camera is located along the center normal of the portrait, looking straight at the portrait's center.

Let's define some variables.

  • Horizontal field of view: FOV (you need to specify)
  • Physical portrait width: PW = 50 cm
  • Width of portrait plane captured: CW cm (unknown)
  • Image width: IW = 800 px
  • Width of portrait in image space: X px (unknown)
  • Distance from camera to subject: D = 10 m

We know tan(FOV) = (CW cm) / (100 * D cm). Therefore CW = tan(FOV) * 100 * D cm.

We know PW / CW = X / IW. Therefore X = (IW * PW) / (tan(FOV) * 100 * D) px.

Upvotes: 1

Related Questions