Mengapa potret ini tidak diambil pada f / 29 tajam?

25

Saya bingung mengapa gambar ini tidak tajam. Ini adalah bidikan potret pada F / 29 ISO100 1/250 dengan lensa 17-85mm yang fokus pada 38mm. Jarak subjek 1.2M. Aplikasi DOF saya memberi tahu saya bahwa DOF saya seharusnya ~ 82,98 cm atau sekitar 1M.

Saya bingung mengapa gambar ini tidak setajam seharusnya. Untuk tangkapan layar ini, saya telah memperbesarnya hingga 200%. Apakah ini banyak kabur pada 200% normal?

EDIT: Beberapa orang memiliki pertanyaan tentang DOF dalam bidikan ini, jadi berikut adalah beberapa info yang dapat diperoleh dari kalkulator DOF online apa pun. Perkiraan 82.8cm saya berasal dari aplikasi dan 1.2M dari info EXIF, menggunakan alat online ini , DOF di F28 adalah:

 Subject distance   1.2 m

 **Depth of field** 
 Near limit     0.84 m
 Far limit      2.13 m
 Total          1.29 m

 In front of subject        0.36 m  (28%)
 Behind subject             0.93 m  (72%)

 Hyperfocal distance         2.7 m
 Circle of confusion       0.019 mm

Ini juga benar karena sejauh itulah saya sebenarnya dari kamera - 1.2M. Jadi untuk pemotretan ini yang tidak fokus, saya harus berada sekitar setengah meter dari kamera, yang bukan yang saya ingat. Mungkin kekaburan yang diamati dalam foto ini bukan karena subjeknya tidak fokus.

potret F / 29 ISO100 1/250

MyStack rusak
sumber
6
difraksi berperan pada aperture ini
null
7
Terkait pasti jika bukan duplikat: Apa itu "batas difraksi"? .
Philip Kendall
1
Apakah lensa fokus pada 38mm atau 38cm? mm sepertinya tidak mungkin.
mattdm
9
Tidak ada dalam deskripsi Anda tentang pengaturan Anda yang telah Anda katakan untuk jarak lensa Anda difokuskan. Perhatikan bahwa ini tidak ada hubungannya dengan panjang fokus lensa zoom Anda diatur. Anda mungkin telah memfokuskan lensa pada jarak tak terbatas untuk semua yang kita tahu. OK, mungkin bukan tak terhingga, tetapi hanya kehilangan fokus adalah kandidat.
osullic
2
"Berfokus pada" dan "focal length" adalah dua konsep yang berbeda. Lebih lanjut di sini .
mattdm

Jawaban:

48

Seperti yang disebutkan dalam jawaban lain, difraksi telah menyebabkan ketidakpatuhan. Untuk menguji ini, seseorang dapat mencoba mempertajam gambar menggunakan dekonvolusi dengan menggunakan fungsi penyebaran titik yang sesuai dengan F / 29. Untuk difraksi, kami memiliki (hingga normalisasi keseluruhan)

P (s) = {J 1rs / ( λF )] / [π rs / ( λF )]} 2

di mana J 1 adalah fungsi Bessel dari jenis pertama orde 1 ,
s adalah jarak pada gambar yang diukur dalam piksel,
r adalah ukuran satu piksel (biasanya sekitar 4,2 * 10 ^ (- 6) meter untuk sensor pangkasan),
λ adalah panjang gelombang cahaya, dan
F adalah F-number, dalam hal ini 29.

Hal ini kemudian berlaku untuk cahaya monokromatik, untuk memperkirakan fungsi penyebaran titik untuk saluran warna yang dapat kita rata-rata pada beberapa kisaran panjang gelombang yang sesuai. Selain itu, seseorang harus mengintegrasikan P ke area piksel yang ditentukan oleh s.

Jika kita mengkompilasi fungsi penyebaran 3 titik untuk 3 saluran warna dengan cara ini kita dapat mempertajam gambar dengan mengubahnya menjadi ruang warna linier dan menerapkan algoritma dekonvolusi dan kemudian mentransformasikannya kembali ke sRGB. Saya mendapat hasil sebagai berikut:

Gambar yang dipertajam

Jadi wajah telah dipertajam secara signifikan hanya dengan menggunakan data tentang F-number dan asumsi tentang ukuran piksel. Artefak Banding terlihat di bagian gelap gambar, ini karena posterisasi setelah diubah kembali ke sRGB.

Seperti yang diminta, saya akan menambahkan beberapa detail lebih lanjut tentang program yang digunakan. Saya menggunakan ImageJ dan ImageMagick , saya juga menggunakan Mathematica untuk menghitung fungsi penyebaran titik, tetapi juga bisa dilakukan dalam ImageJ. Saya akan mulai dengan menjelaskan bagaimana saya melakukan dekonvolusi dengan ImageJ ketika saya sudah memiliki fungsi penyebaran titik. Untuk melakukan dekonvolusi, Anda perlu menginstal plugin untuk ImageJ, saya menggunakan plugin ini untuk kasus ini, tetapi ada juga plugin lain yang tersedia misalnya plugin DeconvolutionLab .

Pertama, Anda perlu mengonversi ke ruang warna linier, saya menggunakan ImageMagick untuk mengubah gambar unsharp (input.jpg) ke ruang warna linier menggunakan perintah:

convert input.jpg -colorspace RGB output.tif

Kemudian dengan ImageJ, Anda kemudian buka file output.tif. Kemudian, dari opsi menu, Anda memilih "gambar" lalu "warna" dan kemudian "Saluran Meludah". Kemudian dari menu pilih "plugins" dan kemudian "parallel iterative deconvolution" dan kemudian 2d deconvolution interative ".

Anda kemudian mendapatkan jendela dekonvolusi, Anda kemudian memilih gambar dan "PSF" berarti fucntion titik penyebaran, di sana Anda memilih file gambar yang berisi fungsi penyebaran titik. Untuk metode ini, saya memilih "WPL" yang didasarkan pada filter Wiener, yang biasanya bekerja cukup baik untuk gambar dengan noise rendah. Dalam opsi untuk WPL, periksa "normalisasi PSF", dan untuk filter low pass ubah nilainya menjadi 0,2, secara default adalah 1, tetapi nilai yang lebih rendah lebih baik untuk gambar dengan noise rendah (jika Anda memilih lebih besar, Anda harus akan mendapatkan gambar yang kurang tajam). Pilihan lain, Boundary dapat dipilih untuk menjadi refleksif, mengubah ukuran dapat diatur ke "kekuatan berikutnya 2", output dapat diatur ke 32 bit, presisi dapat diatur menjadi dua kali lipat. Saya memilih jumlah iterasi maksimum menjadi 15,

Anda kemudian menjalankan program dengan mengklik "deconvolve". Anda kemudian mendapatkan file gambar 32 bit sebagai output. Biasanya, nilai piksel sangat mirip dengan apa yang ada di gambar aslinya, tetapi Anda dapat memiliki beberapa piksel yang melebihi maksimum untuk format gambar asli. Jadi, dalam hal ini kami mulai dengan gambar 8 bit, tetapi dalam gambar dekonvolusi, Anda dapat memiliki nilai abu-abu yang melebihi 255 yang kemudian menyebabkan seluruh gambar menjadi terlalu gelap. Ini harus diperbaiki dengan memotong piksel ini ke 255, yang dapat Anda lakukan dengan memilih di menu "proses" dan kemudian "Matematika" dan kemudian "Max". Nilai maksimum kemudian akan digunakan untuk klip nilai abu-abu yang melebihi nilai itu. Perhatikan bahwa ini akan dilakukan untuk gambar yang terakhir Anda klik. Anda juga dapat melihat file mana yang merupakan "file saat ini" dengan memilih "

Kemudian setelah Anda mendekonvolusikan 3 komponen warna, Anda dapat menggabungkannya dengan memilih di menu "image", lalu "color" dan kemudian "Merge Channels". Anda kemudian mendapatkan gambar komposit yang dapat dikonversi menjadi 8 bit RGB menggunakan perintah "Stack to RGB" yang Anda temukan di sana.

Anda kemudian menyimpan gambar itu, sebut saja im.tif. Terakhir, Anda harus mengonversikan ini ke sRGB, Anda dapat melakukannya dengan ImageMagick menggunakan perintah:

convert im.tif -set colorspace RGB -colorspace sRGB output.tif

Pertanyaan selanjutnya adalah bagaimana cara mendapatkan fungsi penyebaran titik. Dalam praktiknya, jika Anda mengambil gambar seperti yang sedang dibahas di sini, Anda bisa saja mengambil gambar sumber titik, misalnya bintang di F / 29 dan menggunakannya sebagai fungsi penyebaran titik Anda. Sebagai alternatif, Anda dapat melihat batas kontras tinggi dan mengekstrak fungsi penyebaran titik dari cara nilai abu-abu berubah dari satu nilai ke nilai lainnya melintasi batas. Tetapi kemudian Anda mencoba untuk mempertajam gambar sebaik mungkin.

Dalam hal ini tujuannya adalah untuk mengkompilasi fungsi penyebaran titik untuk saluran warna berdasarkan apa yang Anda harapkan untuk F / 29, mendekonvolusi gambar dengan itu dan melihat apakah hasilnya terlihat cukup baik. Saya menggunakan Mathematica untuk melakukan beberapa perhitungan dan yang mana program aljabar komputer yang canggih itu cukup mudah untuk melakukan segala macam manipulasi termasuk rata-rata selama interval panjang gelombang dan mengintegrasikan lebih dari area pixel untuk membuat PSF lebih realistis.

Tetapi ImageJ juga memungkinkan Anda untuk membuat gambar baru yang dapat Anda gunakan sebagai fungsi penyebaran titik. Jika Anda mengklik "File" dan kemudian "Baru" Anda dapat membuat gambar berukuran 32 bit, katakanlah, 64 oleh 64 diisi dengan hitam. Anda kemudian dapat memprogram rumus untuk nilai abu-abu dengan memilih "proses", lalu "Matematika" dan kemudian "Makro". Untuk mendapatkan fungsi penyebaran titik untuk kasus ini yang melibatkan fungsi Bessel di sini, Anda dapat menggunakan fakta bahwa hal itu dijelaskan dengan baik oleh beberapa istilah pertama dari ekspansi seri. Halaman MathWorld yang saya tautkan memberi Anda rangkaian ekspansi ini, jadi, J 1 (x) 2 / x 2 dengan x = π rs / ( λF ) dapat diganti dengan fungsi dari bentuk A + B s 2 + C s 4. Perkiraan ini akan menjadi tidak valid jika s terlalu besar. Sekarang, kita tahu bahwa PSF cenderung nol, misalnya pada jarak sekitar 5 atau 6 piksel dapat diatur ke nol. Dengan asumsi bahwa polinomial masih kecil pada nilai-nilai ini, Anda dapat menulis Makro sebagai:

if(d<7) v = A + B  * pow(d,2) +  B * pow(d,4)

Anda kemudian membuat 3 gambar untuk, katakanlah, lambda = 650 nm, 500 nm dan 400 nm, atau nilai apa pun yang menurut Anda sesuai untuk mewakili difraksi dalam 3 saluran warna. Anda kemudian dapat melakukan rata-rata pada beberapa panjang gelombang yang berbeda dengan membuat gambar untuk lambda yang berbeda dan kemudian memilih "proses", lalu "kalkulator gambar", dan di sana Anda pilih "tambahkan". Anda kemudian dapat menambahkan gambar lain ke hasil ini dan ketika Anda selesai menambahkan, Anda dapat membagi untuk mendapatkan rata-rata dengan memilih "proses", kemudian "matematika" dan kemudian "bagi".

Hitung Iblis
sumber
Itu luar biasa. Bertanya-tanya berapa lama sampai kamera memiliki built-in ini untuk persenjataan koreksi otomatis mereka dan hal semacam ini diterapkan sebagai hal yang biasa.
mattdm
2
+10 (sebenarnya tidak bisa melakukan +10) untuk menambahkan matematika. Sangat bagus bahwa Anda menambahkannya. Bisakah Anda memberikan kutipan untuk ini. Saya ingin mencobanya sendiri. Matematika lebih rinci lebih meriah!
Corruptted MyStack
Benar-benar sangat mencengangkan. Perangkat lunak apa yang Anda lakukan ini? Ini sepertinya bisa sangat berguna untuk fotografi makro.
Whelkaholism
@mattdm Dekonvolusi membutuhkan cukup banyak daya komputasi, tetapi kemudian beberapa algoritma seperti dekonvolusi Richardson-Lucy dapat lebih mudah diimplementasikan dalam perangkat keras daripada yang lain. Juga, perangkat lunak kamera yang digunakan untuk memproses file mentah mereka di komputer mereka dapat mencakup dekonvolusi yang secara khusus dioptimalkan untuk menangani kekaburan yang sebenarnya Anda dapatkan karena pengaburan dan difraksi.
Hitung Iblis
1
@CorruptedMyStack Saya akan menambahkan beberapa detail lagi di jawabannya Anda harus dapat melakukan pekerjaan yang jauh lebih baik jika Anda memiliki file mentah. Anda dapat mencari ukuran sensor dan dari yang menghitung ukuran piksel. Tetapi Anda juga dapat melewatkan perhitungan dan langsung mengukur fungsi penyebaran titik dengan mengambil gambar beberapa objek seperti titik dan kemudian hanya mengekstrak fungsi penyebaran titik dari itu. Dalam kasus difraksi, dekonvolusi paling baik dilakukan dengan file mentah, tidak seperti dalam kasus lain sekarang Anda memiliki pinggiran warna yang tidak boleh diperbaiki sebelum dekonvolusi dilakukan.
Hitung Iblis
51

Anda telah melewati batas difraksi . Sinar cahaya yang melewati lubang kecil akan menyimpang dan mengganggu satu sama lain dan sebuah pola muncul - semacam bandeng di mana frekuensi / penempatan yang berbeda dapat menyebabkan sinar terpisah saling menambah atau meniadakan satu sama lain. Semakin kecil pembukaan, semakin besar perbedaan / interferensi ini. Pola ini disebut disk Airy. Ketika diameter puncak disk Airy menjadi lebih besar dari ukuran piksel dan disk Airy untuk setiap piksel mulai bergabung, Anda mendapatkan kelembutan - jadi semakin tinggi jumlah piksel sensor Anda dan semakin kecil sensor Anda, semakin cepat Anda akan melihatnya saat Anda berhenti.

Anda biasanya lebih tajam di "media senang". Di mana "media senang" gigi Anda dapat berubah tergantung pada kerapatan / ukuran piksel dan desain lensa. Dengan sensor berukuran APS-C, yang secara cerdik saya deteksi Anda gunakan dari referensi lensa 17-85, Anda mungkin tidak ingin melewati f / 11 tanpa alasan yang sangat bagus dan kesediaan untuk memberikan sedikit ketajaman. Batas difraksi teoritis mungkin akan berada dalam kisaran f / 5.6-f / 8. Anda juga ingin mengetahui di mana "sweet spot" lensa Anda - banyak lensa yang kinerjanya lebih baik berhenti 1-2 berhenti dari terbuka lebar. Misalnya, "sweet spot" EF 50mm f / 1.8 II berada dalam kisaran f / 4-5.6.

Saya juga akan mengatakan, menilai ketajaman pada pembesaran 200% hanya meminta semua lensa Anda terlihat seperti dogmeat. Itu bukan pembesaran realistis dalam hal melihat jarak yang Anda miliki dari cetakan biasa, dan itu adalah lensa langka yang akan tahan terhadap tes semacam itu, bahkan ketika digunakan di sweet spot-nya. Hentikan pengintipan piksel. Mulailah melihat cetakan.

Lihat juga: http://www.cambridgeincolour.com/tutorials/diffraction-photography.htm

inkista
sumber
Atau, jika Anda menilai seperti apa bentuk cetakan itu, maka: perbesar gambar sedemikian rupa sehingga muncul di layar dengan ukuran yang sama seperti pada cetakan, dan lihat layar dari jarak yang kira-kira sama dengan jarak yang Anda tempuh pada layar. mencetak. Itu akan memberi Anda gambaran yang lebih baik tentang bagaimana hasil akhirnya akan terlihat, meskipun itu bukan metode yang sempurna. @CorruptedMyStack
CVn
15

Karena difraksi. f / 29 terlalu banyak bagi Anda untuk mengharapkan gambar yang tajam. Cobalah memotret hal yang sama pada f / 8 dan Anda akan melihat perbedaannya.

K. Minkov
sumber