Menggunakan langkah untuk penapis purata bergerak yang cekap
Baru-baru ini, pendekatan berasaskan langkah telah mendapat perhatian kerana kecekapannya dalam melaksanakan penapis purata bergerak. Dalam konteks ini, kami meneroka cara langkah boleh digunakan untuk meningkatkan prestasi penapis sedemikian, bergerak melangkaui kaedah berasaskan lilitan yang lebih tradisional. Khususnya, kami menumpukan pada melaksanakan penapis purata bergerak bersambung 8 jiran yang mengambil kira 9 piksel di sekeliling untuk setiap piksel fokus.
Dengan menggunakan langkah, kami boleh membuat paparan tatasusunan asal yang sepadan dengan baris atas inti penapis. Dengan menggunakan operasi gulung di sepanjang paksi menegak, kita boleh mendapatkan baris tengah kernel dan menambahnya pada paparan yang dibuat pada mulanya. Proses ini diulang untuk mendapatkan baris bawah kernel, dan jumlah baris ini kemudiannya dibahagikan dengan saiz penapis untuk mengira purata bagi setiap piksel.
Untuk menggambarkan pendekatan ini, pertimbangkan pelaksanaan berikut:
import numpy, scipy filtsize = 3 a = numpy.arrange(100).reshape((10, 10)) b = numpy.lib.stride_tricks.as_strided(a, shape=(a.size, filtsize), strides=(a.itemsize, a.itemsize)) for i in range(0, filtsize - 1): if i > 0: b += numpy.roll(b, -(pow(filtsize, 2) + 1) * i, 0) filtered = (numpy.sum(b, 1) / pow(filtsize, 2)).reshape((a.shape[0], a.shape[1]))
Dalam istilah yang lebih umum, mentakrifkan fungsi yang melaksanakan operasi tetingkap bergolek di sepanjang dimensi yang ditentukan membolehkan pelaksanaan penapis purata bergerak yang cekap walaupun dalam tatasusunan berbilang dimensi. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa walaupun pendekatan berasaskan langkah menawarkan kelebihan dalam kes tertentu, untuk tugas penapisan berbilang dimensi yang kompleks, fungsi khusus seperti yang disediakan oleh modul scipy.ndimage mungkin masih menawarkan prestasi unggul.
Atas ialah kandungan terperinci Bolehkah Langkah Meningkatkan Kecekapan Penapis Purata Bergerak dalam Pemprosesan Imej?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!