Cara mendeteksi sinar matahari pada foto

11

Bagaimana Anda mendeteksi secara algoritmik untuk foto tertentu apakah matahari bersinar ketika foto itu diambil?

Contohnya

Sampel dari webcam ini di puncak gunung:

contoh sinar matahari

Jelas matahari bersinar.

Dalam sampel lain ini, itu jauh kurang jelas:

contoh berawan

Orang mungkin dapat mendeteksi dengan mudah apakah berkabut dengan mencoba mengidentifikasi menara gereja kecil di kapel di tengah. Namun, mengetahui sedikit tentang pemrosesan gambar saya akan terkejut jika ada (kombinasi) algoritma yang andal dapat mengetahui apakah ada sinar matahari atau tidak.

Marcel Stör
sumber
1
Saya pikir itu cocok untuk CS.SE dengan sangat baik. Itu tidak akan cocok, jika Anda bertanya tentang skrip imagemagick yang mengurutkan foto Anda tergantung pada sinar matahari.
frafl
1
Apakah maksud Anda mendeteksi apakah matahari bersinar pada saat itu atau tidak, atau mendeteksi di mana (orientasi) matahari bersinar?
Paresh
@ Patesh, apakah matahari bersinar pada saat foto diambil (pikirkan web cam).
Marcel Stör
1
Ada anekdot yang indah tentang kebodohan jaringan saraf : Pentagon mencoba mendeteksi tank musuh pada foto dengan jaringan saraf. Tetapi pada akhirnya mereka memiliki komputer mainframe bernilai jutaan dolar yang dapat membedakan foto yang diambil pada hari berawan dari yang diambil pada hari yang cerah. :-)
uli
Bisakah kita menganggap kamera yang dikalibrasi, yaitu bisakah kita mempercayai warna?
Raphael

Jawaban:

9

Jika Anda dapat mengakses meta-data, Anda dapat menerapkan sejumlah heuristik:

  1. Periksa pengaturan keseimbangan putih , kamera telah memilih untuk foto. Pada dasarnya ini menunjukkan suhu warna cahaya pada saat foto diambil. Biasanya sinar matahari sekitar 5500 Kelvin. Pencahayaan dalam ruangan atau hari berawan, biasanya memiliki suhu yang berbeda.

  2. Periksa pengaturan eksposur . Biasanya ketika matahari bersinar, ada lebih banyak cahaya yang tersedia, jadi ini memengaruhi pengaturan berikut:

    1. Kecepatan rana yang lebih rendah
    2. Pengaturan ISO yang lebih rendah
    3. Nilai-f yang lebih tinggi

    Di masa lalu fotografi, aturan Sunny 16 digunakan untuk memperkirakan paparan. Dan Anda dapat menggunakannya, bersama dengan informasi dalam daftar di atas, untuk memeriksa apakah foto itu diambil pada siang hari.

  3. Periksa apakah flash menyala atau tidak.

  4. Periksa waktu foto itu diambil . Dengan asumsi pengguna telah mengonfigurasi jam, Anda mungkin segera menghapus foto yang diambil pada malam hari.

Namun jika Anda ingin mendekati masalah ini hanya dari sudut pandang pemrosesan gambar. Saya dapat mengatakan bahwa sinar matahari biasanya memiliki kontras yang lebih tinggi , dan tepi yang lebih kasar. Oleh karena itu analisis histogram dan menemukan tepi yang kasar dapat memberikan indikasi yang baik.

Dengan asumsi foto yang Anda proseskan dalam Format Gambar Mentah, Anda dapat menerapkan trik keseimbangan putih yang dijelaskan di atas. Namun ini tidak berfungsi untuk gambar standar seperti jpeg atau png. Ini karena prosesor gambar pada kamera sudah mengkompensasi perubahan suhu warna, dan membuat hasilnya menjadi gambar akhir, hanya merekam pengaturan-wb dalam metadata.

decden
sumber
Saya berguling-guling di lantai, ketika saya membaca "Periksa waktu foto itu diambil". Namun, saya tidak yakin OP ingin merekonstruksi apa yang dilakukan kamera.
frafl
@frafl, saya menambahkan dua contoh
Marcel Stör
@frafl A heuristik, adalah pendekatan apa pun untuk pemecahan masalah, pembelajaran, atau penemuan yang menggunakan metode praktis yang tidak dijamin optimal atau sempurna, tetapi cukup untuk tujuan langsung. Memeriksa waktu foto diambil (jika lokasinya diketahui sebagian saja) akan menjadi heuristik yang bisa diterima.
Andy Gee