Saya menggunakan scipy.signal.convolve untuk menerapkan filter sederhana ke gambar skala abu-abu Masukan saya adalah sebagai berikut:
kk -> filer (2x2)
im -> gambar (500x800) dibuka melalui bantal

>>> from scipy.signal import convolve as cv
>>> kk
[[1, 2], [1, 2]]
>>> im.size
(500, 800)
>>> cvRes = cv(im,kk,'same')

Ketika saya menerapkan konvolusi, saya mengharapkan hasilnya dalam bentuk (500.800), yaitu sama dengan gambar input (im), tetapi hasilnya dalam bentuk (800.500).

>>> cvRes = cv(im,kk,'same')
>>> cvRes.shape
(800, 500)

Saya agak bingung mengenai keluaran ini, saya pikir saya mungkin melewatkan sesuatu atau salah memahami bagaimana seharusnya perpustakaan bekerja.
Hargai bantuan apa pun terkait cara mendapatkan keluaran yang tidak dibalik dan jika saya dapat membaliknya x/y saat mencoba mendapatkan nilai piksel tunggal?

Terima kasih!

0
mhk777 12 Mei 2021, 05:59

1 menjawab

Jawaban Terbaik

Ini adalah efek samping dari PIL. Gambar PIL dengan ukuran (800.500) memiliki 500 baris 800 kolom. Ketika itu menjadi array numpy, ia memiliki bentuk (500.800). Jadi, bukan karena array sedang dialihkan, itu karena kedua modul memberi nomor sumbu yang berbeda.

1
Tim Roberts 12 Mei 2021, 03:27