A FastBilateral filter is a non-linear, edge-preserving and noise-reducing smoothing filter for images. The intensity value at each pixel in an image is replaced by a weighted average of intensity values from nearby pixels.
Algorithm and implementation is based on http://people.csail.mit.edu/sparis/bf/
Please cite above paper for research purpose.
// Fast Bilateral
bilateral.Auto(m)
// Luminance Fast Bilateral
luminance.Auto(m)
- Golang 1.7.x
$ go get -u github.com/mdouchement/bilateral
fi, _ := os.Open("input_path")
defer fi.Close()
m, _, _ := image.Decode(fi)
start := time.Now()
fbl := bilateral.New(m, 16, 0.1)
fbl.Execute()
m2 := fbl.ResultImage() // Or use `At(x, y)` func or just use `fbl` as an image.Image for chained treatments.
fo, _ := os.Create("output_path")
defer fo.Close()
jpeg.Encode(fo, m2, &jpeg.Options{Quality: 100})
MIT. See the LICENSE for more details.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Launch linter (
gometalinter --config=gometalinter.json ./...
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request