Memutar gambar 3D

9

Saya punya gambar 3D voxel non-isotropik, yang saya gunakan rotasi umum. Bagaimana saya bisa menentukan ukuran voxel yang sesuai untuk gambar yang diputar? Saya perlu meminimalkan kehilangan informasi, tetapi hindari terlalu banyak supersampling untuk menjaga agar gambar tidak menjadi terlalu besar.

Andrew Wood
sumber

Jawaban:

2

3D sedikit keluar dari kedalaman saya. Jika itu 2D, saya akan memilih rasio aspek piksel pada gambar yang diputar sedemikian rupa sehingga rasio laju pengambilan sampel kira-kira sama dengan tingkat di mana Anda memotong garis pindai pada gambar asli.

Saya mengada-ada saat ini, jadi izinkan saya mengerjakan contoh pertama:

Misalkan piksel saya lebar 16 unit dan tinggi 1 unit. Tidak peduli berapa banyak saya memutar saya ingin piksel yang dihasilkan memiliki luas sekitar 16 unit kuadrat. Jika saya memutar oleh , saya ingin piksel baru saya 1x16. Jika saya memutar oleh , saya ingin piksel baru saya menjadi 4x4.π/2π/4

Jadi lebih umum, diberikan gambar awal dengan lebar piksel horizontal dan tinggi piksel vertikal , dan rotasi sudut .x0y00θπ/2

masukkan deskripsi gambar di sini

Garis pindai horizontal baru saya akan memotong garis pindai vertikal dari gambar asli dengan kecepatan per satuan panjang dan memotong garis pindai horizontal dari gambar asli dengan kecepatan per satuan panjang.1x0cosθ1y0dosaθ

Demikian juga, garis pindai vertikal baru saya akan memotong garis pindai horizontal asli dengan laju dan garis pindai vertikal asli dengan laju .1y0cosθ1x0dosaθ

Jadi saya ingin rasio aspek saya menjadi dan area piksel baru saya menjadi

xθyθ=x0cosθ+y0dosaθy0cosθ+x0dosaθ
xθyθ=x0y0.

Saya tidak tahu cara terbaik untuk mengatasi kesalahan pembulatan, karena Anda mungkin perlu rasio aspek menjadi rasional dan area piksel menjadi bilangan bulat. Perhatikan juga bahwa saya belum membuktikan apa-apa, cukup buat beberapa rumus untuk rasio aspek yang cocok dengan intuisi pada , , dan .θ=0θ=π/2θ=π/4

Logika Pengembaraan
sumber