
Saat kebanyakan orang mengambil foto, mereka hanya perlu menekan tombol rana pada kamera atau ponsel mereka, dan gambar yang siap untuk dilihat, biasanya dalam format JPEG yang terkenal, akan segera muncul di layar. Namun, untuk beberapa kasus, diperlukan lebih banyak kontrol atas produksi JPEG ini. Misalnya, Anda mungkin ingin menambah atau mengurangi aktivitas fungsi penghilang derau, atau Anda mungkin merasa warnanya kurang tepat.
Dan di situlah file RAW masuk. Dalam konteks ini, gambar mentah adalah transfer langsung dari data yang diterima dari piksel matriks foto, dan tidak mengalami pemrosesan tambahan.... Biasanya, file-file ini dalam format gambar Bayer yang relatif standar, dinamai menurut Bryce Bayer, yang menemukan teknik ini pada tahun 1974 saat bekerja untuk Kodak. Idenya adalah untuk mencegah prosesor gambar onboard (ISP) mengubah gambar mentah Bayer menjadi dapat dilihat, tetapi melakukannya sendiri menggunakan program terpisah, biasanya disebut konverter RAW.

Gambar Bayer hanya merekam satu warna untuk setiap piksel seperti yang ditunjukkan.
Terkadang gambar mentah dibandingkan dengan teknologi negatif fotografi lama, dan meskipun banyak produsen kamera menggunakan format mereka sendiri, jenis file RAW yang paling umum adalah Digital Negative (atau DNG ), dijelaskan oleh Adobe pada tahun 2004. Pertanyaannya tetap - bagaimana cara mendapatkan file DNG dari Raspberry Pi sehingga dapat diproses menggunakan konverter RAW favorit Anda.
Mendapatkan gambar mentah dari Raspberry Pi
Banyak pembaca akan terbiasa dengan aplikasi raspistill, yang menerima gambar JPEG dari kamera. Raspistill memiliki perintah -r yang menambahkan data mentah ke akhir file JPEG. Pemirsa JPEG masih akan menampilkan file ini seperti biasa, mengabaikan banyak megabyte data mentah yang terlampir di bagian belakang. File JPEG + RAW semacam itu dapat diperoleh dengan menggunakan perintah di terminal:
raspistill -r -o image.jpg
Sayangnya, format JPEG + RAW hanya keluar dari kamera dan tidak didukung oleh konverter RAW. Untuk menggunakannya, kita perlu mengubahnya menjadi format DNG.
PyDNG
Utilitas ini mengubah file JPEG + RAW asli Raspberry Pi ke DNG. PyDNG dapat diunduh dari github.com/schoolpost/PyDNG, ada juga instruksi yang lebih rinci di sana. Singkatnya, kita perlu mengikuti langkah-langkah ini:
git clone https://github.com/schoolpost/PyDNG
cd PyDNG
pip3 install src/. # PyDNG Python3
PyDNG dapat digunakan sebagai bagian dari skrip Python yang lebih besar, atau berjalan sendiri. Melanjutkan contoh raspistill, kita bisa masuk ke baris input:
python3 examples/utility.py image.jpg
File DNG yang dihasilkan dapat diproses dengan berbagai konverter RAW. Beberapa di antaranya gratis (misalnya, RawTherapee atau dcraw, meskipun yang terakhir tidak lagi dikembangkan atau didukung), dan ada banyak opsi komersial terkenal (Adobe Camera Raw atau Lightroom).
Keseimbangan putih dan matriks warna
Salah satu masalah dalam menangani file RAW dengan Raspberry Pi saat ini adalah mendapatkan warna yang bermakna. Sebelumnya, gambar dirender dengan bias hijau, karena tidak ada keseimbangan warna yang dilakukan, dan hijau biasanya merupakan saluran warna yang paling sensitif. Lebih buruk lagi, karena nilai RGB dalam gambar mentah hanya mencerminkan sensitivitas piksel sensor terhadap panjang gelombang yang berbeda, nilai tersebut secara apriori tidak berkorelasi secara akurat dengan warna yang kita lihat dengan mata kita. Di sinilah white balance dan matriks warna berguna.
Kita membutuhkan pengganda putih yang benar untuk membuat bagian netral dari pemandangan tampak netral. Kita dapat menggunakan tebakan terpelajar dari raspistill tentang mereka, yang terdapat dalam file JPEG + RAW (atau Anda dapat mengukur nilai Anda sendiri di suatu tempat dalam gambar - misalnya, pada kartu abu-abu). Kemudian matriks dan tabel pencarian diperlukan untuk mengubah warna dari kamera ke sRGB atau Adobe RGB.
hasil
Upaya sebelumnya untuk mengonversi RAW dan hasil yang diperoleh setelah menerapkan versi PyDNG yang diperbarui.
File DCP
Untuk orang yang terbiasa dengan file DNG, kami menyediakan tautan ke file DCP (DNG Camera Profile) dengan profil kamera (dalam format biner). Coba file yang berbeda, kami mendorong pengguna untuk bereksperimen, membuat file mereka sendiri dan mempublikasikan hasilnya!
- Profil warna dasar dibangun ke dalam PyDNG, yang hasilnya ditunjukkan di atas. Ini relatif kecil dan dapat dilihat sebagai file JSON .
- Profil yang lebih besar ditingkatkan dengan tabel referensi untuk rendering warna yang seimbang.
- Mirip dengan yang sebelumnya , tetapi dengan beberapa perbaikan untuk meningkatkan warna kulit dan langit.
Namun, file ini memiliki beberapa fitur:
- Mereka dikalibrasi untuk satu Kamera Kualitas Tinggi Raspberry Pi tertentu, bukan beberapa modul "biasa".
- Sumber cahaya adalah yang ada di ujung jari kami - khususnya, lampu D65 tampaknya dipancarkan sedikit tidak akurat.
- Kalibrasi hanya berfungsi jika suhu warna tidak jauh berbeda dari dua sumber warna yang terlibat dalam kalibrasi - dalam kasus kami, ini adalah kisaran dari 2900K hingga 6000K.
Oleh karena itu, masih ada ruang untuk perbaikan. Namun demikian, pengujian pada banyak modul telah menunjukkan bahwa parameter ini merupakan langkah maju yang signifikan.
Ucapan Terima Kasih
Jack Hogan untuk kalibrasi matriks warna dengan DCamProf, Zsabe Nagi untuk menambahkan fitur baru ke PyDNG.
Bahan tambahan
- Ada banyak sumber daya di luar sana yang menjelaskan pengubahan gambar mentah Bayer menjadi gambar RGB atau YUV yang dapat dilihat. Misalnya artikel di blog Jack .
- Untuk memahami peran matriks warna yang mereka mainkan dalam file DNG, lihat spesifikasinya . Secara khusus, ini tercakup dalam Bab 6.