画像のノイズ除去とノイズ リダクションを実現する Golang の方法
画像のノイズ除去とノイズ リダクションは、画像処理における一般的な問題です。画像内のノイズを効果的に除去できます。ノイズ、改善します。画質と鮮明さ。 Golang は効率的で同時実行可能なプログラミング言語として、これらの画像処理タスクを実装できます。この記事では、Golang を使用して画像のノイズ除去とノイズ低減を実装する方法と、対応するコード例を紹介します。
github.com/nfnt/resize
および github.com/disintegration/imaging
を使用して画像のフィルタリングを実装できます。 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
関数を使用して元の画像を開きます。 image.Decode
関数を使用して画像をデコードし、image.Image
オブジェクトを取得します。次に、メディアン フィルターを使用して画像を処理します。imaging.Median
関数の 2 番目のパラメーターはフィルターのサイズを表し、ここでは 3 に設定します。最後に、imaging.Save
関数を使用して、処理されたイメージをディスクに保存します。
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) } }
上記のコードでは、imaging.Blur
関数を使用して、次のノイズ リダクション効果を実現します。平均フィルター。同様に、フィルターのサイズは 2 番目のパラメーターを調整することで制御できます。
上記のコード例を通じて、メディアン フィルターと平均フィルターに基づいた画像のノイズ除去とノイズ低減の方法を実装しました。もちろん、メディアン フィルターと平均フィルターに加えて、実際のニーズに応じて選択して実装できる他のより複雑なフィルターもあります。同時に、Golang は強力な同時実行機能を提供し、画像処理の効率をさらに最適化できます。この記事があなたのお役に立てば幸いです。
以上が画像のノイズ除去とノイズ低減を実現する Golang の方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。