2009-09-18 22 views
5

Tôi muốn biết độ sâu trường ảnh, tốt nhất là bằng cm hoặc m.Làm cách nào để biết hoặc tính toán độ sâu trường ảnh từ thẻ EXIF?

Tôi biết rằng chúng ta có thể biết cài đặt máy ảnh bằng cách đọc thẻ EXIF, nhưng có thẻ trực tiếp cho chúng tôi biết độ sâu trường ảnh không? Hoặc làm thế nào chúng ta có thể tính toán nó từ một số thẻ EXIF?

Ví dụ sẽ được đánh giá cao. Cảm ơn!

Trả lời

6

Tính chiều sâu của lĩnh vực:

t = A * (S/1440) * (D - F)/F^2

các gần tập trung khoảng cách = D/(1 + t)

khoảng cách lấy nét xa = D/(1-t)

Và đầy đủ độ sâu của fiel d là sự khác biệt giữa chúng.

Các biến là:

A = ống kính khẩu độ (F Number)

S = cảm biến máy ảnh hoặc máy bay phim kích thước đường chéo bằng mm

D = tập trung khoảng cách bằng mm

F = độ dài tiêu cự của ống kính theo mm

Tất nhiên, độ sắc nét của tiêu điểm là chủ quan và được điều chỉnh bằng cách thay đổi hằng số trong phép tính của vòng tròn của sự nhầm lẫn (CoC). Ở đây, tôi đã sử dụng CoC = S/1440 là một giá trị thường được sử dụng.

+0

Bạn nói "D = khoảng cách lấy nét tính bằng mm", khoảng cách lấy nét là gì? Bạn có nghĩa là khoảng cách chủ đề (mà không phải là trong EXIF, phải không?)? –

+1

D = khoảng cách mà ống kính được lấy nét. Một số ghi chú của nhà sản xuất báo cáo đây là "Khoảng cách lấy nét". Bạn cũng có thể sử dụng thẻ EXIF ​​"Subject Distance" giả định rằng máy ảnh đã được tập trung vào đối tượng. Nhưng lưu ý rằng thẻ này bằng mét và phải được nhân với 1000 để lấy D để sử dụng trong công thức này. - Phil –

+0

Tôi hiểu rồi. Còn "Focus Distance Lower" và "Focus Distance Upper" trong EXIF ​​thì sao? Họ đã có chiều sâu của giá trị trường? –

2

Tôi đoán đây, vì vậy tôi muốn đánh giá cao nếu có ai khác có thể khẳng định điều này:

Tôi tin rằng bạn có thể không programatically xác định độ sâu của trường từ dữ liệu EXIF ​​sẵn - bạn phải biết f-stop, tiêu cự, và điều này là rất quan trọng: khoảng cách chủ đề.

Các trường FNumberFocal Length sẽ cung cấp cho bạn hai trường đầu tiên. Thứ ba thường không thể xác định bằng camera. Bạn sẽ cần một số cơ chế cho khác nhau - một số thiết bị bổ sung cho máy ảnh hoặc một số giá trị đã biết cho triangulation.

+1

Chiếc máy ảnh này có thể biết điều này. Với Canon, thông tin này được sử dụng với đo sáng flash E-TTL 2 chẳng hạn. Nhưng ống kính cũng phải hỗ trợ điều này, điều này đúng với hầu hết các ống kính Canon EF gần đây, các ống kính của bên thứ ba thường không hoặc họ yêu cầu chúng làm và chỉ mang lại số 0. Một số ảnh của tôi có các trường "Focus Distance Lower" và "Focus Distance Upper" (ít nhất là exiftool báo cáo chúng). – Joey

+0

Ah, thú vị. Vì vậy, nó chắc chắn sẽ có thể cho một số kết hợp máy ảnh/ống kính. –

+1

Tôi đoán đây là lý do tại sao DOF không có trong dữ liệu EXIF ​​ngay từ đầu - không quá nhiều camera và ống kính sẽ có công nghệ trắc quang xác định khoảng cách chủ đề –

1

Tôi đã xem các công thức trên trong khi tìm kiếm các tính toán của dof và tìm thấy các tính năng này.

Chỉ cần một vài điểm:

  1. Các giá trị của t cần phải được kiểm tra trong chương trình. Nếu t = 1, thì khoảng cách tiêu cự là D/2 và vô cùng trong đó trường hợp D thực sự là khoảng cách siêu xa (hfd). Điều này dễ dàng được chứng minh và cung cấp cho hfd là khoảng (f**2)/(coc*Fnumber).

  2. Nếu t là lớn hơn 1 câu trả lời của bạn sẽ âm và đây là một kết quả vô nghĩa

Các vấn đề liên quan