Rumah >pembangunan bahagian belakang >Golang >Kaedah Golang untuk mencapai denoising imej dan pengurangan hingar
Kaedah Golang untuk mencapai pengurangan hingar dan bunyi
Penyah bunyi dan pengurangan hingar adalah masalah biasa dalam pemprosesan imej. Golang, sebagai bahasa pengaturcaraan yang cekap dan serentak, boleh melaksanakan tugas pemprosesan imej ini. Artikel ini akan memperkenalkan cara menggunakan Golang untuk melaksanakan denoising imej dan pengurangan hingar serta memberikan contoh kod yang sepadan. . Penapis yang biasa digunakan termasuk penapis median, penapis min, dsb. Di Golang, kami boleh menggunakan pustaka pemprosesan imej github.com/nfnt/resize
dan github.com/disintegration/imaging
untuk melaksanakan penapisan imej.
import ( "image" _ "image/jpeg" "os" "github.com/disintegration/imaging" ) func medianFilter(imgPath string) image.Image { // 打开原始图片 file, err := os.Open(imgPath) if err != nil { panic(err) } defer file.Close() // 解码图片 img, _, err := image.Decode(file) if err != nil { panic(err) } // 使用中值滤波器处理图片 filteredImg := imaging.Median(img, 3) return filteredImg } func main() { // 原始图片路径 imgPath := "original.jpg" // 处理图片 filteredImg := medianFilter(imgPath) // 保存处理后的图片 err := imaging.Save(filteredImg, "filtered.jpg") if err != nil { panic(err) } }
os.Open
untuk membuka imej asal, dan kemudian gunakan Fungsi image.Decode
menyahkod imej untuk mendapatkan objek image.Image
. Seterusnya, kami menggunakan penapis median untuk memproses imej, di mana parameter kedua fungsi imaging.Save
untuk menyimpan imej yang diproses ke cakera. github.com/nfnt/resize
和github.com/disintegration/imaging
来实现对图片的滤波处理。import ( "image" _ "image/jpeg" "os" "github.com/disintegration/imaging" ) func meanFilter(imgPath string) image.Image { // 打开原始图片 file, err := os.Open(imgPath) if err != nil { panic(err) } defer file.Close() // 解码图片 img, _, err := image.Decode(file) if err != nil { panic(err) } // 使用均值滤波器处理图片 filteredImg := imaging.Blur(img, 3) return filteredImg } func main() { // 原始图片路径 imgPath := "original.jpg" // 处理图片 filteredImg := meanFilter(imgPath) // 保存处理后的图片 err := imaging.Save(filteredImg, "filtered.jpg") if err != nil { panic(err) } }
在上述代码中,我们首先使用os.Open
函数打开原始图片,然后使用image.Decode
函数解码图片获取image.Image
对象。接着,我们使用中值滤波器对图片进行处理,其中imaging.Median
函数的第二个参数表示滤波器的大小,这里我们设置为3。最后,使用imaging.Save
函数将处理后的图片保存到磁盘。
在上述代码中,我们使用imaging.Blur
Gunakan penapis min untuk mengurangkan hingar
Dalam kod di atas, kami menggunakan fungsi imaging.Blur
untuk melaksanakan pengurangan hingar penapis min Kesan. Begitu juga, saiz penapis boleh dikawal dengan melaraskan parameter kedua.
Atas ialah kandungan terperinci Kaedah Golang untuk mencapai denoising imej dan pengurangan hingar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!