Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fwessels/go-cv
Computer Vision package in pure Go taking advantage of SIMD acceleration
https://github.com/fwessels/go-cv
golang image-processing opencv simd visualization
Last synced: 3 months ago
JSON representation
Computer Vision package in pure Go taking advantage of SIMD acceleration
- Host: GitHub
- URL: https://github.com/fwessels/go-cv
- Owner: fwessels
- License: apache-2.0
- Created: 2017-04-19T01:20:00.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-09-16T14:41:39.000Z (over 6 years ago)
- Last Synced: 2024-09-30T10:23:56.667Z (3 months ago)
- Topics: golang, image-processing, opencv, simd, visualization
- Language: Go
- Homepage:
- Size: 113 KB
- Stars: 84
- Watchers: 7
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-cv
go-cv is a computer vision and image processing library for Go using Golang assembly. It is a works-in-progress wrapper around the [Simd](https://github.com/ermig1979/Simd) library. For now most work has been done on the SSE2 version.
## SIMD
The [Simd](https://github.com/ermig1979/Simd) Library is a highly optimized image processing library. It provides many useful high performance algorithms for image processing such as:
- pixel format conversion
- image scaling and filtration
- extraction of statistic information from images
- motion detection
- object detection (HAAR and LBP classifier cascades)
- classification
- neural networkThe algorithms are optimized using different SIMD CPU extensions. In particular the library supports following CPU extensions:
- x86/x64: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2
- ARM: NEON## Installation
```
$ go get -u "github.com/fwessels/go-cv"
```## Samples
See the `samples` directory for various sample algorithms. For example:
```
$ cd samples
$ go run filtering.go
```## Performance compared to OpenCV 2.x
A comparison against [go-opencv](https://github.com/lazywei/go-opencv) shows the following results:
```
OpenCV SSE2
benchmark old ns/op new ns/op delta
BenchmarkGaussian-8 74338 18481 -75.14%
BenchmarkGaussianRGB-8 186024 57169 -69.27%
BenchmarkBlur-8 110155 16623 -84.91%
BenchmarkBlurRGB-8 293017 53716 -81.67%
BenchmarkMedian3x3-8 129268 23270 -82.00%
BenchmarkMedian3x3RGB-8 169857 65896 -61.21%
BenchmarkMedian5x5-8 883311 131812 -85.08%
BenchmarkMedian5x5RGB-8 1246845 388415 -68.85%
```## go-cv
See the underlying package [go-cv](https://github.com/fwessels/go-cv/) for more information.
## License
go-cv is released under the Apache License v2.0. You can find the complete text in the file LICENSE.