Mengapa keluaran ARSCNView.snapshot() berbeda dari ARFrame.capturedImage?

Saya membuat tampilan dengan dua Tampilan Gambar berdampingan untuk membandingkan keduanya.

Sisi kiri dari ARFrame.capturedImage.

Sisi kanan dari ARSCNView.snapshot()

Anda dapat melihat sisi kiri sedikit lebih terang dibandingkan sisi kanan, meskipun saya mengarahkan kamera ke dinding putih.

Dinding putih

Saya memerlukan kedua fungsi untuk mengembalikan nilai piksel yang sama untuk objek yang sama, sehingga nanti saya dapat menyalin piksel tertentu tanpa muncul kontur yang jelas karena perbedaan kecerahan.

Apakah mungkin karena cara saya mengubah CVPixelFrameBuffer menjadi UIImage?


person Mastergalen    schedule 23.09.2018    source sumber
comment
Menurut saya, kecerahan bukanlah masalahnya. Perhatikan lebih dekat kerutan di bagian bawah, gambarnya berbeda. Menurut saya yang kanan diperbesar   -  person sj-r    schedule 24.09.2018
comment
@sj-r Saya telah mengganti gambar dengan kamera yang diarahkan ke dinding putih. Ketidaksejajaran pada kerutan mungkin disebabkan oleh jeda pengambilan gambar di antara kedua foto.   -  person Mastergalen    schedule 24.09.2018
comment
Saya yakin alasannya adalah karena ARKit menggunakan gamma sRGB, sedangkan SceneKit menggunakan sRGB linier. stackoverflow.com/questions/44033605/ Namun, tampaknya tidak ada cara cepat untuk melakukan konversi tanpa mendalami kode shader.   -  person Mastergalen    schedule 25.09.2018
comment
Sudahlah, saya sudah menerapkan konversi tetapi masih tidak aktif :(   -  person Mastergalen    schedule 25.09.2018