All Projects → fwessels → Go Cv

fwessels / Go Cv

Licence: apache-2.0
Computer Vision package in pure Go taking advantage of SIMD acceleration

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Go Cv

Vehicle counting tensorflow
🚘 "MORE THAN VEHICLE COUNTING!" This project provides prediction for speed, color and size of the vehicles with TensorFlow Object Counting API.
Stars: ✭ 582 (+781.82%)
Mutual labels:  opencv, image-processing
Graph Based Image Segmentation
Implementation of efficient graph-based image segmentation as proposed by Felzenswalb and Huttenlocher [1] that can be used to generate oversegmentations.
Stars: ✭ 31 (-53.03%)
Mutual labels:  opencv, image-processing
Road Detection And Tracking
Involves the OpenCV based C++ implementation to detect and track roads for almost realtime performance
Stars: ✭ 17 (-74.24%)
Mutual labels:  opencv, image-processing
Caer
High-performance Vision library in Python. Scale your research, not boilerplate.
Stars: ✭ 452 (+584.85%)
Mutual labels:  opencv, image-processing
Facer
Simple (🤞) face averaging (🙂) in Python (🐍)
Stars: ✭ 49 (-25.76%)
Mutual labels:  opencv, image-processing
Tiler
Tiler is a tool to create an image using all kinds of other smaller images (tiles). It is different from other mosaic tools since it can adapt to tiles with multiple shapes and sizes (i.e. not limited to squares).
Stars: ✭ 4,681 (+6992.42%)
Mutual labels:  opencv, image-processing
Tensorflow object counting api
🚀 The TensorFlow Object Counting API is an open source framework built on top of TensorFlow and Keras that makes it easy to develop object counting systems!
Stars: ✭ 956 (+1348.48%)
Mutual labels:  opencv, image-processing
Curvaturefilter
Curvature Filters are efficient solvers for Variational Models
Stars: ✭ 291 (+340.91%)
Mutual labels:  opencv, image-processing
Seeds Revised
Implementation of the superpixel algorithm called SEEDS [1].
Stars: ✭ 48 (-27.27%)
Mutual labels:  opencv, image-processing
Grabcutweb
Full web grabcut example using opencvjs
Stars: ✭ 40 (-39.39%)
Mutual labels:  opencv, image-processing
Pycair
Content aware image resizing
Stars: ✭ 425 (+543.94%)
Mutual labels:  opencv, image-processing
Catt
Detecting the temperature from an infrared image
Stars: ✭ 60 (-9.09%)
Mutual labels:  opencv, image-processing
Gocv
Go package for computer vision using OpenCV 4 and beyond.
Stars: ✭ 4,511 (+6734.85%)
Mutual labels:  opencv, image-processing
Qupath
QuPath - Bioimage analysis & digital pathology
Stars: ✭ 503 (+662.12%)
Mutual labels:  opencv, image-processing
Pythonsift
A clean and concise Python implementation of SIFT (Scale-Invariant Feature Transform)
Stars: ✭ 374 (+466.67%)
Mutual labels:  opencv, image-processing
Prlib
Pre-Recognition Library - library with algorithms for improving OCR quality.
Stars: ✭ 18 (-72.73%)
Mutual labels:  opencv, image-processing
Harvesters
🌈 Friendly Image Acquisition Library for Computer Vision People
Stars: ✭ 274 (+315.15%)
Mutual labels:  opencv, image-processing
Opencvsharp
OpenCV wrapper for .NET
Stars: ✭ 3,598 (+5351.52%)
Mutual labels:  opencv, image-processing
Opencv Tutorials
Tutorials for learning OpenCV in Python from Scratch
Stars: ✭ 36 (-45.45%)
Mutual labels:  opencv, image-processing
Opencv Face Filters
Snapchat-like Face Filters in OpenCV
Stars: ✭ 51 (-22.73%)
Mutual labels:  opencv, image-processing

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 library. For now most work has been done on the SSE2 version.

SIMD

The 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 network

The 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 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 for more information.

License

go-cv is released under the Apache License v2.0. You can find the complete text in the file LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].