Làm cách nào để tính khoảng cách của một đối tượng trong ảnh?


36

Nếu tôi chụp ảnh một cối xay gió ở đường chân trời - cho rằng tôi biết kích thước cảm biến và tiêu cự của ống kính và các yếu tố khác để chụp - tôi có thể tính được một vật ở cách xa người chụp không?


Vâng, bạn có thể có thể với một chút toán học phức tạp, nhưng nó vượt xa tôi. Nếu ở trên đường chân trời, bạn có thể bỏ qua tất cả những điều đó và chỉ cần nhân chiều cao của mắt bạn (tính bằng feet, bao gồm cả chiều cao của bất kỳ vùng đất hoặc tòa nhà nào bạn đang ở) với 1,5 thì tìm căn bậc hai của nó, cung cấp cho bạn ( xấp xỉ) khoảng cách đến đường chân trời trong dặm
ElendilTheTall

2
Canon 100mm f / 2.8 IS USM của tôi (và có lẽ là một số ống kính khác) ghi lại khoảng cách chủ thể trong dữ liệu EXIF, có thể đáng để điều tra nếu thiết bị của bạn thực hiện điều này trước khi bạn tham gia bất kỳ phép toán phức tạp nào!
ChrisFletcher

2
@Chris Khoảng cách tập trung có lẽ sẽ chỉ nói "vô cùng" mà không hữu ích lắm!
Matt Grum

1
@Chris máy ảnh "biết" khoảng cách từ hệ thống AF và như bạn đề xuất, nó trở nên rất không chính xác trong khoảng cách lớn (nhưng vẫn đủ chính xác để hình ảnh được lấy nét!). Ngoài ra, chỉ vì EXIF ​​chỉ định khoảng cách xuống đến một centimet, không có nghĩa là con số này chính xác đến một centimet!
Matt Grum

1
Matt: Theo như tôi biết rằng thông tin được gửi lại từ ống kính (biết khoảng cách lấy nét, xấp xỉ) cho E-TTL2. Nó chỉ hoạt động với các ống kính Canon với USM. Chris: Con số tính bằng centimet không cho bạn biết gì về độ chính xác của nó.
Joey

Câu trả lời:


35

Yếu tố duy nhất khác bạn cần là chiều cao của vật thể trong đời thực (nếu không bạn có thể chụp một mô hình gần với máy ảnh hơn nhiều).

Các toán học thực sự không phức tạp lắm, tỷ lệ kích thước của vật thể trên cảm biến và kích thước của vật thể trong đời thực giống như tỷ lệ giữa độ dài tiêu cự và khoảng cách với vật thể.

Để tính kích thước của đối tượng trên cảm biến, hãy tính chiều cao của nó bằng pixel, chia cho chiều cao hình ảnh tính bằng pixel và nhân với chiều cao vật lý của cảm biến.

Vậy tổng số là:

Khoảng cách đến phương trình đối tượng

Hãy tỉnh táo kiểm tra phương trình này.

Nếu chúng ta giữ mọi thứ khác không đổi và tăng độ dài tiêu cự thì khoảng cách sẽ tăng (vì độ dài tiêu cự nằm trên tử số). Đây là những gì bạn mong đợi, nếu bạn phải phóng to ống kính của mình để làm cho một đối tượng có kích thước khác đối tượng có kích thước tương đương được sử dụng, thì đối tượng đầu tiên phải ở xa hơn.

Nếu chúng ta giữ mọi thứ khác không đổi và tăng chiều cao thực của vật thể thì một lần nữa khoảng cách sẽ tăng lên nếu như hai vật thể có chiều cao thực khác nhau xuất hiện cùng một chiều cao trong ảnh thì người cao hơn phải ở xa hơn.

Nếu chúng ta giữ mọi thứ khác không đổi và tăng chiều cao hình ảnh, thì khoảng cách sẽ tăng, như thể hai đối tượng (có cùng kích thước, hãy nhớ rằng chúng ta giữ mọi thứ khác không đổi) xuất hiện cùng kích thước pixel trong hình ảnh bị cắt và không bị cắt xén sau đó đối tượng trong hình ảnh không cắt xén phải xa hơn.

Nếu chúng ta giữ mọi thứ khác không đổi và tăng chiều cao đối tượng bằng pixel thì khoảng cách sẽ giảm (hiện tại chúng ta đang ở mẫu số): hai đối tượng có kích thước bằng nhau, một đối tượng chiếm nhiều pixel hơn, nó phải gần hơn.

Cuối cùng, nếu chúng ta giữ mọi thứ khác không đổi và tăng kích thước cảm biến, thì khoảng cách sẽ giảm: hai vật có kích thước bằng nhau có cùng chiều cao pixel khi được chụp bằng máy compact (cảm biến nhỏ, trong đó 20mm là ống kính dài) và chụp bằng máy ảnh DSLR (cảm biến lớn trong đó 20mm là một ống kính rộng), thì đối tượng trong ảnh DSLR phải ở xa hơn (vì nó xuất hiện cùng kích thước nhưng với một ống kính rộng).


1
Vì vậy, nói cách khác, "không, không phải không biết kích thước của vật thể trong cuộc sống thực". Mặt khác, bạn có hai yếu tố chưa biết. Cối xay gió có thể là một mô hình gần hơn bạn nghĩ.
mattdm

1
@mattdm chính xác, chỉ là để làm rõ điều đó trong câu trả lời. Bạn cũng có thể chụp ảnh một chiếc cối xay gió, v.v.
Matt Grum

@ matt-grum Quan điểm của tôi là chúng ta cần một trong những điều sau đây: 1) hoặc là kích thước đối tượng thực sự; 2) hoặc hai hoặc nhiều hình ảnh.
sastanin

@jetxee vâng Tôi hiểu điều đó ngay bây giờ, từ nhận xét của bạn không rõ ràng, vì tôi đã tuyên bố kích thước đối tượng là một trong những điều được biết trong câu trả lời của tôi
Matt Grum

bạn có thể chứng minh định luật này không, từ parralax của hình tam giác, hình ảnh (pixel) / sensor_height không phù hợp với phương trình, và bạn đề cập đến chiều cao cảm biến là gì?!
Lỗi

16

Như đã lưu ý @ matt-grum, công thức đơn giản nhất để ước tính khoảng cách đến đối tượng là công thức chiếu pinhole :

x / f = X / d

Trong đó x là kích thước của vật thể trên cảm biến, f là tiêu cự của ống kính, X là kích thước của vật thể và d là khoảng cách từ điểm nút đến vật thể. xf , và Xd được đo theo cùng một đơn vị, ví dụ mm và m tương ứng (để tính x bạn sẽ cần ước tính kích thước pixel cho cảm biến của mình, ví dụ, đối với Pentax K20D, nó là 23,4 mm / 4672 px 5,008e-3 mm / px, tức là một hình ảnh dài 100 px tương ứng với x = 50,08e-3 mm).

Trong phần sau tôi giả sử rằng kích thước của đối tượng ( X ) là không xác định và các tham số duy nhất được biết là x (kích thước hình ảnh) và f (tiêu cự).

Vấn đề là chúng ta không thể biết được từ một bức ảnh nếu một vật nhỏ ở rất gần máy ảnh hoặc một vật lớn ở xa, bởi vì độ sâu trường ảnh trong ảnh phong cảnh thường rất lớn (và đó là lý do tại sao công thức pinhole được áp dụng).

Để giải quyết vấn đề này, chúng tôi có thể sử dụng hai hoặc nhiều hình ảnh để đo khoảng cách. Với điều kiện bạn có thể đo tất cả các góc và khoảng cách giữa hai vị trí camera, bạn cũng có thể tính khoảng cách đến vật thể từ xa. Nhưng đo tất cả các góc không phải là một nhiệm vụ dễ dàng.

Một cách tiếp cận dễ dàng hơn là chụp hai bức ảnh nằm trên cùng một đường thẳng với đối tượng, với đối tượng ở giữa hình ảnh. Đặt khoảng cách đến đối tượng trên ảnh đầu tiên là d₁ và kích thước ảnh là x₁ :

x_1 / f = X / d_1

Sau đó, nếu chúng ta di chuyển camera s mét trực tiếp đối với các đối tượng, sau đó trên bức ảnh thứ hai, chúng tôi có kích thước hình ảnh x₂ hơi lớn hơn x₁ :

( lưu ý : mẫu số trong biểu thức tiếp theo không chính xác, thay vì "d1", nó phải là "d2" hoặc tương đương "d1-s")

x_2 / f = X / (d_1 - s)

Cung cấp cho chúng tôi

d_1 = s x_2 / (x_2 - x_1)

Rõ ràng, nếu s không lớn enogh ảnh hưởng đáng kể đến kích thước hình ảnh, bạn không thể ước tính khoảng cách đáng tin cậy và cần sử dụng các phương pháp phức tạp hơn. Càng lớn, chênh lệch x₂ - x₁ càng tốt.


Bây giờ tôi hiểu ý của bạn về nhận xét của bạn, tôi cho rằng kích thước đối tượng đã được biết, nếu không thì nó phức tạp hơn, vì bạn không chỉ cần ít nhất hai camera, mà cả camera phải được hiệu chỉnh
Matt Grum

@sastanin Tôi đang thử công thức của bạn nhưng tôi không thể làm cho nó hoạt động được. Tôi đã tạo một trang ở đây photo.stackexchange.com/questions/80195/ trộm
omega

2

Tôi biết đó là một chủ đề cũ, nhưng câu hỏi này dường như đến bây giờ và sau đó. FWIW, tôi đã thêm một máy tính để tính khoảng cách đối tượng trong ảnh.

http://www.scantips.com/light/subjectdistance.html

Bạn vẫn sẽ phải biết các giá trị của mình để làm cho nó hoạt động, một trong số đó là gần đúng chiều cao thực của đối tượng. Thảo luận ở đó.


1

Thay vì cố gắng sử dụng các công thức nếu bạn điều tra các phương pháp ước tính khoảng cách hàng hải liên quan đến một số "quy tắc ngón tay cái" cơ bản, ví dụ nếu bạn đang đứng cách mặt nước 1 feet, bạn cách đường chân trời 3 hải lý nếu bạn giơ ngón tay cái lên cánh tay dài cho chúng vật mà bạn nhìn vào được che phủ cao 100 ft (tôi nghĩ) Tôi đã quên hầu hết những thứ này vì tôi không còn sử dụng chúng nữa nhưng chúng hoạt động và một khi được học và sử dụng thường xuyên là chính xác đáng kể.


rất thú vị ! những thứ tình yêu như thế này - hy vọng những thứ này không bị lãng quên theo thời gian
Rob

0

Câu trả lời đơn giản - không. Bạn có hai biến và chỉ có một phương trình.


1
Chất lượng rất thấp so với câu trả lời được chấp nhận ...
Olivier

Nhưng rất đơn giản và (chính xác) đến điểm.
Michael C

bạn có thể giả sử điều này ẩn trong câu hỏi và câu trả lời yêu cầu tìm ra phương trình phụ
Lỗi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.