Saya memiliki gambar panorama biasa. Bagaimana cara mengonversinya menjadi gambar persegi panjang (normal → persegi panjang)?
Sebagian besar hasil yang saya temukan di Google adalah konversi yang berlawanan arah (equirectangular → normal).
Ini adalah gambar yang ingin saya konversi ( HR link )
3d
image-format
file-conversion
Bob van Luijt
sumber
sumber
Jawaban:
Gambar berbentuk persegi panjang menyajikan bola, itu terdistorsi sehingga garis meridian dan paralel pada bola ditampilkan sebagai garis lurus vertikal dan horizontal. Contoh dari Wikipedia:
Di sebelah kiri ada peta bulat dan di kanan ada peta bidang setara, proyeksi equirectangular dari bola ke persegi panjang.
Tidak ada peregangan di garis katulistiwa, tetapi gambar itu direntangkan secara horizontal di tempat lain. Semakin memanjang titik semakin jauh dari khatulistiwa. Tepi atas dan bawah sebenarnya hanya mengandung satu titik - kutub.
Kotak memiliki proporsi W / H = 2: 1. Itu mencerminkan fakta jarak antara kutub di sepanjang bola persis setengah dari perjalanan pulang-pergi penuh di sepanjang khatulistiwa.
Anda ingin mengonversi gambar Anda menjadi equirectangular. Tampaknya proporsinya adalah 2: 1, jadi itu sudah berbentuk segitiga jika bola yang sesuai adalah ini:
Setengah dari gambar tersembunyi di balik bola, tetapi itu dia. Seperti yang Anda lihat, tepi atas dan bawah gambar Anda dicubit ke titik, kutub.
Saya pikir Anda melihat ini sebagai bagian dari matematika yang tidak berguna, Anda mengharapkan sesuatu yang lain. Saya kira Anda ingin
1) gambar persegi panjang yang menyajikan bola dengan gambar Anda sebagai bagian dari permukaan, tidak perlu menutupi bola penuh dengannya
2) ketika seseorang melihatnya duduk di tengah bola, dia dapat melihat gambar Anda di bola tanpa distorsi dan dalam ukuran yang begitu besar sehingga gambar tersebut menutupi bagian subtropis dari bidang penglihatan, katakanlah sektor dengan lebar 90 derajat dan 45 derajat tinggi.
Jika Anda menerima beberapa distorsi, Anda cukup menambah ukuran kanvas hingga 400%
Pada bola yang dilihat dari luar, inilah:
(maaf untuk glosses, program CAD freeware saya tidak memungkinkan pengeditan lampu)
Foto Affinity memiliki Layer> Live Projection> Equirectangular yang dapat menunjukkan gambar di dalam bola seperti gambar yang dilukis di permukaan bagian dalam bola dan pengamat berada di titik tengah. Ini menunjukkan ini:
Pagar dan horizon melengkung jelas tidak diinginkan, tetapi matahari masih cukup bulat. Itu karena jauh lebih kecil dan dekat garis khatulistiwa. Cakrawala dan pagar melengkung, karena mereka sebenarnya berada di lingkaran horizontal (= paralel dari peta bulat), orang melihat mereka sedikit ke bawah dan melihatnya sebagai busur elips.
Satu dapat meluruskan area gambar asli dengan kompensasi yaitu distorsi. dengan membelokkan atau lebih tepatnya dengan persamaan distorsi matematika (Affinity P mendukungnya juga).
Foto Afinitas memungkinkan pengeditan gambar dalam mode proyeksi langsung. Pengeditan diterapkan pada gambar equirectangular yang mendasarinya, tetapi yang satu mengawasi proyeksi bola. Inilah upaya melengkung kasar:
Selain itu, seseorang dapat menempelkan gambar asli dan menggabungkannya ke lapisan latar belakang kosong, yang berada di bawah proyeksi Langsung:
Tapi ini bukan perbaikan umum. Segera setelah pengamat sedikit menoleh, dia melihat pemandangan baru yang terdistorsi (= kartu datar terlihat dari samping)
Tidak ada perbaikan umum, karena Anda belum memiliki adegan 3D, hanya gambar datar pada bola 3D.
Pendapat saya adalah bahwa memetakan lingkungan sebagai gambar tunggal ke bola dan menontonnya dari titik tengah dapat menjadi kenyataan virtual yang masuk akal hanya jika adegan yang dipetakan sangat jauh sehingga tidak dapat memiliki perspektif. Bahkan dalam kasus itu kita perlu beberapa distorsi lebar viewport pintar untuk membuat jarak yang tampak tak terbatas, bukan = jari-jari bola. Distorsi harus hidup seiring dengan perubahan arah menonton.
Jawaban ini benar-benar ditulis ulang setelah memeriksa banyak kasus ini nanti: Bagaimana saya bisa melukis gambar equirectangular (360 derajat)?
sumber
Anda tidak dapat melakukannya pada gambar Anda seperti yang Anda miliki.
1) Anda ingin proyeksi silinder pada bola. Pertama kanvas Anda harus berada pada proporsi yang tepat. 3.1416: 1 (Gunakan kanvas berukuran piksel yang Anda inginkan, misalnya 3141x1000px)
2) Dan Anda (biasanya) membutuhkan cakrawala berada di tengah kanvas.
Pada proyeksi silindris (dari bola), Anda memiliki deformasi spesifik pada proyeksi karena dimensi vertikal yang diproyeksikan versus ketinggian sebenarnya segmen itu, jadi Anda perlu mengompensasinya ketika Anda menggambar kartun di kanvas datar.
Cara mudah untuk melakukan ini adalah menggunakan filter Spherize di Photoshop. (Pada versi arca yang saya miliki sekarang di komputer ini ada di Filter> Distort> Spherize)
Tapi Anda HANYA perlu mengubah itu pada sumbu vertikal.
Tapi selain itu Anda perlu menentukan bagian panorama 360 yang Anda miliki. Bayangkan seekor ayam lain mengambil foto. Apa yang akan menjadi sudut lensa yang digunakan?
Saya merasa bahwa ini adalah lensa sudut lebar, memungkinkan benda yang Anda ambil seperti bidang sudut 120 °. Ini berarti Anda harus melengkapi gambar Anda dengan barang-barang yang Anda miliki di belakang fotografer ayam.
Aplikasi Google VR yang ingin Anda gunakan mengatakan bahwa ini memerlukan proyeksi silinder, tetapi meminta proporsi 2: 1 pada gambar Anda. Proyeksi 2: 1 biasanya adalah bola yang memiliki deformasi yang berbeda, tetapi lebih sulit untuk dicapai dalam video misalnya.
Untuk alasan praktis mereka sebenarnya meminta proyeksi silindris, jadi Anda cukup membuat sampel asli 3.1416: 1 hingga 2: 1 sebagai langkah terakhir.
Cukup resample gambar terakhir. Jika kanvas Anda adalah 3141x1000 px cukup resample ke 2000x1000px. Jangan potong itu. Ayam akan terlihat lebih ramping tetapi akan menjadi gemuk kembali pada aplikasi VR.
Untuk kanvas awal Anda: Pada gambar spesifik Anda, sulit untuk menentukan sudut pandang, tetapi mari kita lihat 3 skenario.
(A) Bidang pandang Anda adalah sekitar 120 ° sehingga Anda dapat mengakomodasi 3 foto binatang peliharaan lucu karena gambar yang Anda posting 2048 kanvas harus 2048x3 = 6144px dan sekarang bagilah dengan pi = 1955px
6144x1955px
(B) Tetapi jika Anda tidak ingin hewan peliharaan terlalu kecil mari kita asumsikan foto mencakup 180 ° = 2048x2 = 4096 / pi = 1303
4096x1303px
(C) Atau bermain dengan angka-angka.
sumber
Gambar Anda memiliki informasi benar-benar litle dan terlalu kecil. Juga tidak memiliki geometri equirectangular. Tapi Anda bisa melakukannya di Blender, gratis. Cukup render di "Panorama"> "equirectangular"> "Render. Untuk melihat gambar HDRI di 360 Anda dapat menggunakan situs ini: http://panoramaviewer.1bestlink.net/
sumber
Gambar asli:
Tambah ukuran kanvas dan gunakan isian yang sadar konten, untuk memberi gambar lebih banyak langit dan tanah. Saya menggunakan Photoshop:
Anda akan menggunakan filter Koordinat Polar di langkah berikutnya. Berikut adalah gambar yang menunjukkan cara kerja Koordinat Polar dengan tepat:
Seperti yang Anda lihat, kami ingin mengonversi dari perspektif bawah (Persegi Panjang) ke perspektif atas (Kutub). Untuk melakukan ini, buka Filter -> Distort -> Koordinat Polar -> Rectangular to Polar:
Gunakan isian sadar isi, alat perbaikan, atau alat prangko untuk memperbaiki area di tengah dan di sekitar tepinya:
Gunakan Koordinat Polar lagi, tapi Polar ke Rectangular kali ini. Anda dapat memproyeksikan gambar ini pada 360 ° sphere:
Katakanlah Anda memiliki gambar langit malam. Anda dapat menggunakan Koordinat Polar lagi. Tetapi karena bagian tengah gambar Anda akan menjadi bagian atas setelah distorsi equirectangular, Anda hanya menggunakan Koordinat Polar ke Rectangular sekali:
Dalam perangkat lunak 3D (saya menggunakan Clara.io gratis), ini adalah bagaimana tekstur terlihat pada bola:
sumber