https://github.com/masyagin1998/segmentator
Basic image segmentation algorithms: Roberts, Sobel, Thresholding, etc
https://github.com/masyagin1998/segmentator
Last synced: 6 months ago
JSON representation
Basic image segmentation algorithms: Roberts, Sobel, Thresholding, etc
- Host: GitHub
- URL: https://github.com/masyagin1998/segmentator
- Owner: masyagin1998
- License: mit
- Created: 2018-04-12T19:48:04.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-08-20T22:18:27.000Z (about 6 years ago)
- Last Synced: 2025-03-19T21:04:25.713Z (7 months ago)
- Language: Go
- Homepage:
- Size: 13.4 MB
- Stars: 4
- Watchers: 0
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# segmentator
This is a simple library for image segmentation written in Golang.
I need it for my CG synopsis (it is in synopsis folder), but hope it'll be usefull for You too :)# structure of the library
0) Loading and Saving Images:
- Load Image: func LoadImage(path, name string) (img Image, err error)
- Save Image: func SaveImage(path, name string, img Image) (err error)1) Grayscale algorithms:
- Averaging ("Quick and Dirty"): func GSAveraging(img Image)
- Correcting the human eye ("Luma"): func GSLuma(img Image)
- Desaturation: func GSDesaturation(img Image)
- Decomposition (Maximal and Minimal): func GSDecomposition(img Image, do int) (err error)
- Single Color Channel (Red, Green or Blue): func GSDecomposition(img Image, do int) (err error)2) First generation algorithms:
- Based on Edge-Detection:
- Roberts operator: func FGEDRoberts(img Image, do int) (err error)
- Previtt operator: func FGEDPrevitt(img Image, do int) (err error)
- Sobel operator: func FGEDSobel(img Image, do int) (err error)
- Scharr operator: func FGEDScharr(img Image, do int) (err error)
- Custom operator: func FGEDCustomOperators(img Image, GxOp, GyOp [][]int, do int) (err error)
- Based on Pixel Classification:
- Simple Iterative: func FGPCIterative(img Image) (threshold int)
- Otsu: func FGPCOtsuThresholding2(img Image) (threshold int)
- Custom: FGPCThreshold(img Image, thresholds []int, colors []Pixel) (err error)
3) Helpers:
- abs: func abs(value int) int
- min: func min(values ...int) int
- max: func max(values ...int) int# important notes
1) Disputes on which coordinate system to use when processing images continues to the day. I prefer Gonsales-Woods varinant:
