diff options
author | Nick White <git@njw.name> | 2019-01-25 15:08:06 +0000 |
---|---|---|
committer | Nick White <git@njw.name> | 2019-01-25 15:08:06 +0000 |
commit | 524fd9bde90fbe9c6e985ead5e6eac284192f427 (patch) | |
tree | 6d6838830615b555b687eb8f264dd4fc90f4e711 | |
parent | 30c088b90e7b6a25d93cbdad7564ff063e62afd3 (diff) |
Add simple Otsu binarize tool (written a while ago)
-rw-r--r-- | binarize/binarize.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/binarize/binarize.go b/binarize/binarize.go new file mode 100644 index 0000000..0290ef4 --- /dev/null +++ b/binarize/binarize.go @@ -0,0 +1,38 @@ +package main + +import ( + "flag" + "fmt" + "log" + "os" + + "github.com/Ernyoke/Imger/threshold" + "github.com/Ernyoke/Imger/imgio" +) + +func main() { + flag.Usage = func() { + fmt.Fprintf(os.Stderr, "Usage: binarize inimg outimg\n") + flag.PrintDefaults() + } + flag.Parse() + if flag.NArg() < 2 { + flag.Usage() + os.Exit(1) + } + + img, err := imgio.ImreadGray(flag.Arg(0)) + if err != nil { + log.Fatalf("Could not read image %s\n", flag.Arg(0)) + } + + thresh, err := threshold.OtsuThreshold(img, threshold.ThreshBinary) + if err != nil { + log.Fatal("Error binarising image\n") + } + + err = imgio.Imwrite(thresh, flag.Arg(1)) + if err != nil { + log.Fatalf("Could not write image %s\n", flag.Arg(1)) + } +} |