opencv

package module
v0.0.0-...-eabbc34 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 22, 2024 License: BSD-3-Clause Imports: 6 Imported by: 0

README


Go bindings for OpenCV1.1

PkgDoc: http://godoc.org/github.com/chai2010/opencv

Install

Install GCC or MinGW (download here) at first, and then run these commands:

  1. go get -d github.com/chai2010/opencv
  2. go generate and go install
  3. go run hello.go

Notes

If use TDM-GCC, and build error like this:

c:\tdm-gcc-64\x86_64-w64-mingw32\include\aviriff.h:3:25: error: 'refer' does not
 name a type
 * No warranty is given; refer to the file DISCLAIMER within this package.
 ...

You need fix the C:\TDM-GCC-64\x86_64-w64-mingw32\include\aviriff.h header first:

** // fixit: ** -> /**
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER within this package.
*/

Example

// Copyright 2014 <chaishushan{AT}gmail.com>. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

import (
	"fmt"
	"log"
	"os"

	"github.com/chai2010/opencv"
)

func main() {
	filename := "./testdata/lena.jpg"
	if len(os.Args) == 2 {
		filename = os.Args[1]
	}

	image := opencv.LoadImage(filename)
	if image == nil {
		log.Fatalf("LoadImage %s failed!", filename)
	}
	defer image.Release()

	win := opencv.NewWindow("Go-OpenCV")
	defer win.Destroy()

	win.SetMouseCallback(func(event, x, y, flags int) {
		fmt.Printf("event = %d, x = %d, y = %d, flags = %d\n",
			event, x, y, flags,
		)
	})
	win.CreateTrackbar("Thresh", 1, 100, func(pos int) {
		fmt.Printf("pos = %d\n", pos)
	})

	win.ShowImage(image)
	opencv.WaitKey(0)
}

Screenshots

Edge

Inpaint

Video Player

Cameras

BUGS

Report bugs to chaishushan@gmail.com.

Thanks!

Documentation

Overview

Package opencv provides Go bindings for OpenCV 1.1.

Install `GCC` or `MinGW` (http://tdm-gcc.tdragon.net/download) at first, and then run these commands:

  1. `go get -d github.com/chai2010/opencv`
  2. `go generate` and `go install`
  3. `go run hello.go`

Example:

// Copyright 2014 <chaishushan{AT}gmail.com>. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

import (
	"fmt"
	"log"
	"os"

	"github.com/chai2010/opencv"
)

func main() {
	filename := "../images/lena.jpg"
	if len(os.Args) == 2 {
		filename = os.Args[1]
	}

	image := opencv.LoadImage(filename)
	if image == nil {
		log.Fatalf("LoadImage %s failed!", filename)
	}
	defer image.Release()

	win := opencv.NewWindow("Go-OpenCV")
	defer win.Destroy()

	win.SetMouseCallback(func(event, x, y, flags int) {
		fmt.Printf("event = %d, x = %d, y = %d, flags = %d\n",
			event, x, y, flags,
		)
	})
	win.CreateTrackbar("Thresh", 1, 100, func(pos int) {
		fmt.Printf("pos = %d\n", pos)
	})

	win.ShowImage(image)
	opencv.WaitKey(0)
}

Report bugs to <chaishushan@gmail.com>.

Thanks!

Example (Version)
package main

import (
	"fmt"

	opencv "github.com/chai2010/opencv"
)

func main() {
	fmt.Printf("OpenCV %v\n", opencv.CV_VERSION)
}
Output:

OpenCV 1.1.0

Index

Examples

Constants

View Source
const (
	CV_BGR2GRAY = C.CV_BGR2GRAY

	CV_BLUR = C.CV_BLUR
)
View Source
const (
	CV_INPAINT_NS    = C.CV_INPAINT_NS
	CV_INPAINT_TELEA = C.CV_INPAINT_TELEA
)
View Source
const (
	CV_DIST_USER   = C.CV_DIST_USER
	CV_DIST_L1     = C.CV_DIST_L1
	CV_DIST_L2     = C.CV_DIST_L2
	CV_DIST_C      = C.CV_DIST_C
	CV_DIST_L12    = C.CV_DIST_L12
	CV_DIST_FAIR   = C.CV_DIST_FAIR
	CV_DIST_WELSCH = C.CV_DIST_WELSCH
	CV_DIST_HUBER  = C.CV_DIST_HUBER
)
View Source
const (
	CV_MAJOR_VERSION    = 1
	CV_MINOR_VERSION    = 1
	CV_SUBMINOR_VERSION = 0
	CV_VERSION          = "1.1.0"
)
View Source
const (
	CV_PI   = 3.1415926535897932384626433832795
	CV_LOG2 = 0.69314718055994530941723212145818
)
View Source
const (
	IPL_DEPTH_SIGN = C.IPL_DEPTH_SIGN

	IPL_DEPTH_1U  = C.IPL_DEPTH_1U
	IPL_DEPTH_8U  = C.IPL_DEPTH_8U
	IPL_DEPTH_16U = C.IPL_DEPTH_16U
	IPL_DEPTH_32F = C.IPL_DEPTH_32F

	IPL_DEPTH_8S  = C.IPL_DEPTH_8S
	IPL_DEPTH_16S = C.IPL_DEPTH_16S
	IPL_DEPTH_32S = C.IPL_DEPTH_32S

	IPL_DATA_ORDER_PIXEL = C.IPL_DATA_ORDER_PIXEL
	IPL_DATA_ORDER_PLANE = C.IPL_DATA_ORDER_PLANE

	IPL_ORIGIN_TL = C.IPL_ORIGIN_TL
	IPL_ORIGIN_BL = C.IPL_ORIGIN_BL

	IPL_ALIGN_4BYTES  = C.IPL_ALIGN_4BYTES
	IPL_ALIGN_8BYTES  = C.IPL_ALIGN_8BYTES
	IPL_ALIGN_16BYTES = C.IPL_ALIGN_16BYTES
	IPL_ALIGN_32BYTES = C.IPL_ALIGN_32BYTES

	IPL_ALIGN_DWORD = C.IPL_ALIGN_DWORD
	IPL_ALIGN_QWORD = C.IPL_ALIGN_QWORD

	IPL_BORDER_CONSTANT  = C.IPL_BORDER_CONSTANT
	IPL_BORDER_REPLICATE = C.IPL_BORDER_REPLICATE
	IPL_BORDER_REFLECT   = C.IPL_BORDER_REFLECT
	IPL_BORDER_WRAP      = C.IPL_BORDER_WRAP
)
View Source
const (
	IPL_IMAGE_HEADER = C.IPL_IMAGE_HEADER // 1
	IPL_IMAGE_DATA   = C.IPL_IMAGE_DATA   // 2
	IPL_IMAGE_ROI    = C.IPL_IMAGE_ROI    // 4
)
View Source
const (
	CV_MATND_MAGIC_VAL = C.CV_MATND_MAGIC_VAL
	CV_TYPE_NAME_MATND = C.CV_TYPE_NAME_MATND

	CV_MAX_DIM      = C.CV_MAX_DIM
	CV_MAX_DIM_HEAP = C.CV_MAX_DIM_HEAP
)
View Source
const (
	CV_SPARSE_MAT_MAGIC_VAL = C.CV_SPARSE_MAT_MAGIC_VAL
	CV_TYPE_NAME_SPARSE_MAT = C.CV_TYPE_NAME_SPARSE_MAT
)
View Source
const (
	CV_HIST_MAGIC_VAL    = C.CV_HIST_MAGIC_VAL
	CV_HIST_UNIFORM_FLAG = C.CV_HIST_UNIFORM_FLAG

	/* indicates whether bin ranges are set already or not */
	CV_HIST_RANGES_FLAG = C.CV_HIST_RANGES_FLAG

	CV_HIST_ARRAY  = C.CV_HIST_ARRAY
	CV_HIST_SPARSE = C.CV_HIST_SPARSE
	CV_HIST_TREE   = C.CV_HIST_TREE

	/* should be used as a parameter only,
	   it turns to CV_HIST_UNIFORM_FLAG of hist->type */
	CV_HIST_UNIFORM = C.CV_HIST_UNIFORM
)
View Source
const (
	CV_TERMCRIT_ITER   = C.CV_TERMCRIT_ITER
	CV_TERMCRIT_NUMBER = C.CV_TERMCRIT_NUMBER
	CV_TERMCRIT_EPS    = C.CV_TERMCRIT_EPS
)
View Source
const (
	CV_STORAGE_READ         = C.CV_STORAGE_READ
	CV_STORAGE_WRITE        = C.CV_STORAGE_WRITE
	CV_STORAGE_WRITE_TEXT   = C.CV_STORAGE_WRITE_TEXT
	CV_STORAGE_WRITE_BINARY = C.CV_STORAGE_WRITE_BINARY
	CV_STORAGE_APPEND       = C.CV_STORAGE_APPEND
)

Storage flags:

View Source
const (
	CV_StsOk                     = CVStatus(C.CV_StsOk)                     /* everithing is ok                */
	CV_StsBackTrace              = CVStatus(C.CV_StsBackTrace)              /* pseudo error for back trace     */
	CV_StsError                  = CVStatus(C.CV_StsError)                  /* unknown /unspecified error      */
	CV_StsInternal               = CVStatus(C.CV_StsInternal)               /* internal error (bad state)      */
	CV_StsNoMem                  = CVStatus(C.CV_StsNoMem)                  /* insufficient memory             */
	CV_StsBadArg                 = CVStatus(C.CV_StsBadArg)                 /* function arg/param is bad       */
	CV_StsBadFunc                = CVStatus(C.CV_StsBadFunc)                /* unsupported function            */
	CV_StsNoConv                 = CVStatus(C.CV_StsNoConv)                 /* iter. didn't converge           */
	CV_StsAutoTrace              = CVStatus(C.CV_StsAutoTrace)              /* tracing                         */
	CV_HeaderIsNull              = CVStatus(C.CV_HeaderIsNull)              /* image header is NULL            */
	CV_BadImageSize              = CVStatus(C.CV_BadImageSize)              /* image size is invalid           */
	CV_BadOffset                 = CVStatus(C.CV_BadOffset)                 /* offset is invalid               */
	CV_BadDataPtr                = CVStatus(C.CV_BadDataPtr)                /**/
	CV_BadStep                   = CVStatus(C.CV_BadStep)                   /**/
	CV_BadModelOrChSeq           = CVStatus(C.CV_BadModelOrChSeq)           /**/
	CV_BadNumChannels            = CVStatus(C.CV_BadNumChannels)            /**/
	CV_BadNumChannel1U           = CVStatus(C.CV_BadNumChannel1U)           /**/
	CV_BadDepth                  = CVStatus(C.CV_BadDepth)                  /**/
	CV_BadAlphaChannel           = CVStatus(C.CV_BadAlphaChannel)           /**/
	CV_BadOrder                  = CVStatus(C.CV_BadOrder)                  /**/
	CV_BadOrigin                 = CVStatus(C.CV_BadOrigin)                 /**/
	CV_BadAlign                  = CVStatus(C.CV_BadAlign)                  /**/
	CV_BadCallBack               = CVStatus(C.CV_BadCallBack)               /**/
	CV_BadTileSize               = CVStatus(C.CV_BadTileSize)               /**/
	CV_BadCOI                    = CVStatus(C.CV_BadCOI)                    /**/
	CV_BadROISize                = CVStatus(C.CV_BadROISize)                /**/
	CV_MaskIsTiled               = CVStatus(C.CV_MaskIsTiled)               /**/
	CV_StsNullPtr                = CVStatus(C.CV_StsNullPtr)                /* null pointer */
	CV_StsVecLengthErr           = CVStatus(C.CV_StsVecLengthErr)           /* incorrect vector length */
	CV_StsFilterStructContentErr = CVStatus(C.CV_StsFilterStructContentErr) /* incorr. filter structure content */
	CV_StsKernelStructContentErr = CVStatus(C.CV_StsKernelStructContentErr) /* incorr. transform kernel content */
	CV_StsFilterOffsetErr        = CVStatus(C.CV_StsFilterOffsetErr)        /* incorrect filter ofset value */
	CV_StsBadSize                = CVStatus(C.CV_StsBadSize)                /* the input/output structure size is incorrect  */
	CV_StsDivByZero              = CVStatus(C.CV_StsDivByZero)              /* division by zero */
	CV_StsInplaceNotSupported    = CVStatus(C.CV_StsInplaceNotSupported)    /* in-place operation is not supported */
	CV_StsObjectNotFound         = CVStatus(C.CV_StsObjectNotFound)         /* request can't be completed */
	CV_StsUnmatchedFormats       = CVStatus(C.CV_StsUnmatchedFormats)       /* formats of input/output arrays differ */
	CV_StsBadFlag                = CVStatus(C.CV_StsBadFlag)                /* flag is wrong or not supported */
	CV_StsBadPoint               = CVStatus(C.CV_StsBadPoint)               /* bad CvPoint */
	CV_StsBadMask                = CVStatus(C.CV_StsBadMask)                /* bad format of mask (neither 8uC1 nor 8sC1)*/
	CV_StsUnmatchedSizes         = CVStatus(C.CV_StsUnmatchedSizes)         /* sizes of input/output structures do not match */
	CV_StsUnsupportedFormat      = CVStatus(C.CV_StsUnsupportedFormat)      /* the data format/type is not supported by the function*/
	CV_StsOutOfRange             = CVStatus(C.CV_StsOutOfRange)             /* some of parameters are out of range */
	CV_StsParseError             = CVStatus(C.CV_StsParseError)             /* invalid syntax/structure of the parsed file */
	CV_StsNotImplemented         = CVStatus(C.CV_StsNotImplemented)         /* the requested function/feature is not implemented */
	CV_StsBadMemBlock            = CVStatus(C.CV_StsBadMemBlock)            /* an allocated block has been corrupted */
)
View Source
const (
	CV_EVENT_MOUSEMOVE     = int(C.CV_EVENT_MOUSEMOVE)
	CV_EVENT_LBUTTONDOWN   = int(C.CV_EVENT_LBUTTONDOWN)
	CV_EVENT_RBUTTONDOWN   = int(C.CV_EVENT_RBUTTONDOWN)
	CV_EVENT_MBUTTONDOWN   = int(C.CV_EVENT_MBUTTONDOWN)
	CV_EVENT_LBUTTONUP     = int(C.CV_EVENT_LBUTTONUP)
	CV_EVENT_RBUTTONUP     = int(C.CV_EVENT_RBUTTONUP)
	CV_EVENT_MBUTTONUP     = int(C.CV_EVENT_MBUTTONUP)
	CV_EVENT_LBUTTONDBLCLK = int(C.CV_EVENT_LBUTTONDBLCLK)
	CV_EVENT_RBUTTONDBLCLK = int(C.CV_EVENT_RBUTTONDBLCLK)
	CV_EVENT_MBUTTONDBLCLK = int(C.CV_EVENT_MBUTTONDBLCLK)

	CV_EVENT_FLAG_LBUTTON  = int(C.CV_EVENT_FLAG_LBUTTON)
	CV_EVENT_FLAG_RBUTTON  = int(C.CV_EVENT_FLAG_RBUTTON)
	CV_EVENT_FLAG_MBUTTON  = int(C.CV_EVENT_FLAG_MBUTTON)
	CV_EVENT_FLAG_CTRLKEY  = int(C.CV_EVENT_FLAG_CTRLKEY)
	CV_EVENT_FLAG_SHIFTKEY = int(C.CV_EVENT_FLAG_SHIFTKEY)
	CV_EVENT_FLAG_ALTKEY   = int(C.CV_EVENT_FLAG_ALTKEY)
)
View Source
const (
	/* 8bit, color or not */
	CV_LOAD_IMAGE_UNCHANGED = int(C.CV_LOAD_IMAGE_UNCHANGED)
	/* 8bit, gray */
	CV_LOAD_IMAGE_GRAYSCALE = int(C.CV_LOAD_IMAGE_GRAYSCALE)
	/* ?, color */
	CV_LOAD_IMAGE_COLOR = int(C.CV_LOAD_IMAGE_COLOR)
	/* any depth, ? */
	CV_LOAD_IMAGE_ANYDEPTH = int(C.CV_LOAD_IMAGE_ANYDEPTH)
	/* ?, any color */
	CV_LOAD_IMAGE_ANYCOLOR = int(C.CV_LOAD_IMAGE_ANYCOLOR)
)
View Source
const (
	CV_CVTIMG_FLIP    = int(C.CV_CVTIMG_FLIP)
	CV_CVTIMG_SWAP_RB = int(C.CV_CVTIMG_SWAP_RB)
)
View Source
const (
	CV_CAP_ANY = int(C.CV_CAP_ANY) // autodetect

	CV_CAP_MIL = int(C.CV_CAP_MIL) // MIL proprietary drivers

	CV_CAP_VFW  = int(C.CV_CAP_VFW) // platform native
	CV_CAP_V4L  = int(C.CV_CAP_V4L)
	CV_CAP_V4L2 = int(C.CV_CAP_V4L2)

	CV_CAP_FIREWARE = int(C.CV_CAP_FIREWARE) // IEEE 1394 drivers
	CV_CAP_FIREWIRE = int(C.CV_CAP_FIREWIRE)
	CV_CAP_IEEE1394 = int(C.CV_CAP_IEEE1394)
	CV_CAP_DC1394   = int(C.CV_CAP_DC1394)
	CV_CAP_CMU1394  = int(C.CV_CAP_CMU1394)

	CV_CAP_STEREO = int(C.CV_CAP_STEREO) // TYZX proprietary drivers
	CV_CAP_TYZX   = int(C.CV_CAP_TYZX)
	CV_TYZX_LEFT  = int(C.CV_TYZX_LEFT)
	CV_TYZX_RIGHT = int(C.CV_TYZX_RIGHT)
	CV_TYZX_COLOR = int(C.CV_TYZX_COLOR)
	CV_TYZX_Z     = int(C.CV_TYZX_Z)

	CV_CAP_QT = int(C.CV_CAP_QT) // QuickTime

	CV_CAP_UNICAP = int(C.CV_CAP_UNICAP) // Unicap drivers

	CV_CAP_DSHOW = int(C.CV_CAP_DSHOW) // DirectShow (via videoInput)
)
View Source
const (
	CV_CAP_PROP_POS_MSEC      = int(C.CV_CAP_PROP_POS_MSEC)
	CV_CAP_PROP_POS_FRAMES    = int(C.CV_CAP_PROP_POS_FRAMES)
	CV_CAP_PROP_POS_AVI_RATIO = int(C.CV_CAP_PROP_POS_AVI_RATIO)
	CV_CAP_PROP_FRAME_WIDTH   = int(C.CV_CAP_PROP_FRAME_WIDTH)
	CV_CAP_PROP_FRAME_HEIGHT  = int(C.CV_CAP_PROP_FRAME_HEIGHT)
	CV_CAP_PROP_FPS           = int(C.CV_CAP_PROP_FPS)
	CV_CAP_PROP_FOURCC        = int(C.CV_CAP_PROP_FOURCC)
	CV_CAP_PROP_FRAME_COUNT   = int(C.CV_CAP_PROP_FRAME_COUNT)
	CV_CAP_PROP_FORMAT        = int(C.CV_CAP_PROP_FORMAT)
	CV_CAP_PROP_MODE          = int(C.CV_CAP_PROP_MODE)
	CV_CAP_PROP_BRIGHTNESS    = int(C.CV_CAP_PROP_BRIGHTNESS)
	CV_CAP_PROP_CONTRAST      = int(C.CV_CAP_PROP_CONTRAST)
	CV_CAP_PROP_SATURATION    = int(C.CV_CAP_PROP_SATURATION)
	CV_CAP_PROP_HUE           = int(C.CV_CAP_PROP_HUE)
	CV_CAP_PROP_GAIN          = int(C.CV_CAP_PROP_GAIN)
	CV_CAP_PROP_EXPOSURE      = int(C.CV_CAP_PROP_EXPOSURE)
	CV_CAP_PROP_CONVERT_RGB   = int(C.CV_CAP_PROP_CONVERT_RGB)
	// CV_CAP_PROP_WHITE_BALANCE = int(C.CV_CAP_PROP_WHITE_BALANCE)
	CV_CAP_PROP_RECTIFICATION = int(C.CV_CAP_PROP_RECTIFICATION)
)
View Source
const (
	CV_AUTOSTEP = C.CV_AUTOSTEP
)

mat step

View Source
const (
	/* Open Codec Selection Dialog (Windows only) */
	CV_FOURCC_PROMPT = int(C.CV_FOURCC_PROMPT)
)
View Source
const CV_GAUSSIAN_5x5 = C.CV_GAUSSIAN_5x5
View Source
const (
	CV_WHOLE_SEQ_END_INDEX = C.CV_WHOLE_SEQ_END_INDEX
)
View Source
const (
	CV_WINDOW_AUTOSIZE = C.CV_WINDOW_AUTOSIZE
)
View Source
const (
	IPL_DEPTH_64F = C.IPL_DEPTH_64F
)

Variables

View Source
var (
	IPL_IMAGE_MAGIC_VAL = C.IPL_IMAGE_MAGIC_VAL
	CV_TYPE_NAME_IMAGE  = C.CV_TYPE_NAME_IMAGE
)

Functions

func Alloc

func Alloc(size int) unsafe.Pointer

func CV_ARE_TYPE_EQ

func CV_ARE_TYPE_EQ() bool

func CV_HIST_HAS_RANGES

func CV_HIST_HAS_RANGES() bool

func CV_IS_HIST

func CV_IS_HIST() bool

func CV_IS_IMAGE

func CV_IS_IMAGE(img unsafe.Pointer) bool

func CV_IS_IMAGE_HDR

func CV_IS_IMAGE_HDR(img unsafe.Pointer) bool

func CV_IS_MASK_ARR

func CV_IS_MASK_ARR() bool

func CV_IS_MAT

func CV_IS_MAT(mat interface{}) bool

func CV_IS_MAT_HDR

func CV_IS_MAT_HDR(mat interface{}) bool

func CV_IS_SPARSE_HIST

func CV_IS_SPARSE_HIST() bool

func CV_IS_UNIFORM_HIST

func CV_IS_UNIFORM_HIST() bool

func Canny

func Canny(image, edges *IplImage, threshold1, threshold2 float64, aperture_size int)

Runs canny edge detector

func Ceil

func Ceil(value float64) int

func ConvertImage

func ConvertImage(src, dst unsafe.Pointer, flags int)

utility function: convert one image to another with optional vertical flip

func Copy

func Copy(src, dst, mask *IplImage)

Copies source array to destination array

func CvToIplDepth

func CvToIplDepth(_type int) int

func CvtColor

func CvtColor(src, dst *IplImage, code int)

Converts input array pixels from one color space to another

func DecRefData

func DecRefData(arr *CvArr)

Decrements CvMat data reference counter and deallocates the data if

it reaches 0

func DestroyAllWindows

func DestroyAllWindows()

destroy window and all the trackers associated with it

func FOURCC

func FOURCC(c1, c2, c3, c4 int8) int32

Prototype for CV_FOURCC so that swig can generate wrapper without mixing up the define

func Floor

func Floor(value float64) int

func Free

func Free(p unsafe.Pointer)

func GetSizeHeight

func GetSizeHeight(img *IplImage) int

func GetSizeWidth

func GetSizeWidth(img *IplImage) int

Returns width and height of array in elements

func IncRefData

func IncRefData(arr *CvArr)

Increments CvMat data reference counter

func Inpaint

func Inpaint(src, inpaint_mask, dst *IplImage, inpaintRange float64, flags int)

Inpaints the selected region in the image

func IsInf

func IsInf(value float64) int

func IsNaN

func IsNaN(value float64) int

func Line

func Line(image *IplImage, pt1, pt2 Point, color Scalar, thickness, line_type, shift int)
Draws 4-connected, 8-connected or antialiased line segment connecting two points

color Scalar,

func Not

func Not(src, dst *IplImage)

dst(idx) = ~src(idx)

func RawDataToScalar

func RawDataToScalar(data unsafe.Pointer, type_ int, scalar *Scalar)

func Round

func Round(value float64) int

func SaveImage

func SaveImage(filename string, image *IplImage) int

save image to file

func ScalarToRawData

func ScalarToRawData(scalar *Scalar, data unsafe.Pointer, type_, extend_to_12 int)

low-level scalar <-> raw data conversion functions

func Smooth

func Smooth(src, dst *IplImage, smoothtype,
	param1, param2 int, param3, param4 float64)

Smoothes array (removes noise)

func StartWindowThread

func StartWindowThread() int

func WaitKey

func WaitKey(delay int) int

wait for key event infinitely (delay<=0) or for "delay" milliseconds

func Zero

func Zero(img *IplImage)

Clears all the array elements (sets them to 0)

Types

type Box2D

type Box2D struct {
	// contains filtered or unexported fields
}

type CVStatus

type CVStatus C.int

func (CVStatus) IsOK

func (s CVStatus) IsOK() bool

func (CVStatus) Name

func (s CVStatus) Name() string

type Capture

type Capture C.CvCapture

"black box" capture structure

func NewCameraCapture

func NewCameraCapture(index int) *Capture

start capturing frames from camera: index = camera_index + domain_offset (CV_CAP_*)

func NewFileCapture

func NewFileCapture(filename string) *Capture

start capturing frames from video file

func (*Capture) GetProperty

func (capture *Capture) GetProperty(property_id int) float64

retrieve or set capture properties

func (*Capture) GrabFrame

func (capture *Capture) GrabFrame() bool
grab a frame, return 1 on success, 0 on fail.

this function is thought to be fast

func (*Capture) QueryFrame

func (capture *Capture) QueryFrame() *IplImage

Just a combination of cvGrabFrame and cvRetrieveFrame

!!!DO NOT RELEASE or MODIFY the retrieved frame!!!

func (*Capture) Release

func (capture *Capture) Release()

stop capturing/reading and free resources

func (*Capture) RetrieveFrame

func (capture *Capture) RetrieveFrame() *IplImage
get the frame grabbed with cvGrabFrame(..)

This function may apply some frame processing like frame decompression, flipping etc. !!!DO NOT RELEASE or MODIFY the retrieved frame!!!

func (*Capture) SetProperty

func (capture *Capture) SetProperty(property_id int, value float64) int

type Cv32suf

type Cv32suf C.Cv32suf

type Cv64suf

type Cv64suf C.Cv64suf

type CvArr

type CvArr C.CvArr

type CvAttrList

type CvAttrList C.CvAttrList

type CvAvgComp

type CvAvgComp C.CvAvgComp

type CvChain

type CvChain C.CvChain

type CvChainPtReader

type CvChainPtReader C.CvChainPtReader

type CvConDensation

type CvConDensation C.CvConDensation

type CvConnectedComp

type CvConnectedComp C.CvConnectedComp

type CvContour

type CvContour C.CvContour

type CvContourScanner

type CvContourScanner C.CvContourScanner

type CvContourTree

type CvContourTree C.CvContourTree

type CvConvexityDefect

type CvConvexityDefect C.CvConvexityDefect

type CvFileStorage

type CvFileStorage C.CvFileStorage

"black box" file storage

type CvFilter

type CvFilter C.CvFilter

type CvGraph

type CvGraph C.CvGraph

type CvGraphEdge

type CvGraphEdge C.CvGraphEdge

type CvGraphVtx

type CvGraphVtx C.CvGraphVtx

type CvGraphVtx2D

type CvGraphVtx2D C.CvGraphVtx2D

type CvHaarClassifierCascade

type CvHaarClassifierCascade C.CvHaarClassifierCascade

type CvHaarFeature

type CvHaarFeature C.CvHaarFeature

type CvHaarStageClassifier

type CvHaarStageClassifier C.CvHaarStageClassifier

type CvHuMoments

type CvHuMoments C.CvHuMoments

type CvKalman

type CvKalman C.CvKalman

type CvMemBlock

type CvMemBlock C.CvMemBlock

type CvMemStorage

type CvMemStorage C.CvMemStorage

type CvMemStoragePos

type CvMemStoragePos C.CvMemStoragePos

type CvMoments

type CvMoments C.CvMoments

type CvNextEdgeType

type CvNextEdgeType C.CvNextEdgeType

type CvQuadEdge2D

type CvQuadEdge2D C.CvQuadEdge2D

type CvSeq

type CvSeq C.CvSeq

type CvSeqBlock

type CvSeqBlock C.CvSeqBlock

type CvSeqReader

type CvSeqReader C.CvSeqReader

type CvSeqWriter

type CvSeqWriter C.CvSeqWriter

type CvSet

type CvSet C.CvSet

type CvSubdiv2D

type CvSubdiv2D C.CvSubdiv2D

type CvSubdiv2DEdge

type CvSubdiv2DEdge C.CvSubdiv2DEdge

type CvSubdiv2DPoint

type CvSubdiv2DPoint C.CvSubdiv2DPoint

type CvSubdiv2DPointLocation

type CvSubdiv2DPointLocation C.CvSubdiv2DPointLocation

type HistType

type HistType C.CvHistType

type Histogram

type Histogram C.CvHistogram

type IplConvKernel

type IplConvKernel C.IplConvKernel

type IplConvKernelFP

type IplConvKernelFP C.IplConvKernelFP

type IplImage

type IplImage C.IplImage

func CreateImage

func CreateImage(w, h, depth, channels int) *IplImage

Creates IPL image (header and data)

func CreateImageHeader

func CreateImageHeader(w, h, depth, channels int) *IplImage

Allocates and initializes IplImage header

func LoadImage

func LoadImage(filename string, iscolor_ ...int) *IplImage

func (*IplImage) At

func (p *IplImage) At(x, y int) color.Color

func (*IplImage) Bounds

func (p *IplImage) Bounds() image.Rectangle

func (*IplImage) Clone

func (img *IplImage) Clone() *IplImage

Creates a copy of IPL image (widthStep may differ)

func (*IplImage) ColorModel

func (p *IplImage) ColorModel() color.Model

func (*IplImage) GetCOI

func (img *IplImage) GetCOI() int

Retrieves image Channel Of Interest

func (*IplImage) GetChannels

func (p *IplImage) GetChannels() int

func (*IplImage) GetDepth

func (p *IplImage) GetDepth() int

func (*IplImage) GetHeight

func (p *IplImage) GetHeight() int

func (*IplImage) GetImageData

func (p *IplImage) GetImageData() []byte

func (*IplImage) GetImageSize

func (p *IplImage) GetImageSize() int

func (*IplImage) GetOrigin

func (p *IplImage) GetOrigin() int

func (*IplImage) GetROI

func (img *IplImage) GetROI() Rect

Retrieves image ROI

func (*IplImage) GetWidth

func (p *IplImage) GetWidth() int

func (*IplImage) GetWidthStep

func (p *IplImage) GetWidthStep() int

func (*IplImage) InitHeader

func (img *IplImage) InitHeader(w, h, depth, channels, origin, align int)

Inializes IplImage header

func (*IplImage) PixOffset

func (p *IplImage) PixOffset(x, y int) int

func (*IplImage) Release

func (img *IplImage) Release()

Releases IPL image header and data

func (*IplImage) ReleaseHeader

func (img *IplImage) ReleaseHeader()

Releases (i.e. deallocates) IPL image header

func (*IplImage) ResetROI

func (img *IplImage) ResetROI()

Resets image ROI and COI

func (*IplImage) SetCOI

func (img *IplImage) SetCOI(coi int)

Sets a Channel Of Interest (only a few functions support COI) -

use cvCopy to extract the selected channel and/or put it back

func (*IplImage) SetROI

func (img *IplImage) SetROI(rect Rect)

Sets image ROI (region of interest) (COI is not changed)

type IplROI

type IplROI C.IplROI

func (*IplROI) Coi

func (roi *IplROI) Coi() int

func (*IplROI) Height

func (roi *IplROI) Height() int

func (*IplROI) Init

func (roi *IplROI) Init(coi, xOffset, yOffset, width, height int)

func (*IplROI) ToRect

func (roi *IplROI) ToRect() Rect

func (*IplROI) Width

func (roi *IplROI) Width() int

func (*IplROI) XOffset

func (roi *IplROI) XOffset() int

func (*IplROI) YOffset

func (roi *IplROI) YOffset() int

type LineIterator

type LineIterator C.CvLineIterator

type Mat

type Mat C.CvMat

func CreateMat

func CreateMat(rows, cols, type_ int) *Mat

Allocates and initializes CvMat header and allocates data

func CreateMatHeader

func CreateMatHeader(rows, cols, type_ int) *Mat

Allocates and initalizes CvMat header

func GetCol

func GetCol(arr *CvArr, submat *Mat, col int) *Mat

func GetCols

func GetCols(arr *CvArr, submat *Mat, start_col, end_col int) *Mat

Selects column span of the input array: arr(:,start_col:end_col)

(end_col is not included into the span)

func GetDiag

func GetDiag(arr *CvArr, submat *Mat, diag int) *Mat

Select a diagonal of the input array.

(diag = 0 means the main diagonal, >0 means a diagonal above the main one,
<0 - below the main one).
The diagonal will be represented as a column (nx1 matrix).

func GetRow

func GetRow(arr *CvArr, submat *Mat, row int) *Mat

func GetRows

func GetRows(arr *CvArr, submat *Mat, start_row, end_row, delta_row int) *Mat

Selects row span of the input array: arr(start_row:delta_row:end_row,:)

(end_row is not included into the span).

func GetSubRect

func GetSubRect(arr *CvArr, submat *Mat, rect Rect) *Mat

Makes a new matrix from <rect> subrectangle of input array.

No data is copied

func LoadImageM

func LoadImageM(filename string, iscolor int) *Mat

func (*Mat) Clone

func (mat *Mat) Clone() *Mat

Creates an exact copy of the input matrix (except, may be, step value)

func (*Mat) Cols

func (mat *Mat) Cols() int

func (*Mat) Get

func (m *Mat) Get(row, col int) float64

func (*Mat) Init

func (m *Mat) Init(rows, cols int, _type int, data unsafe.Pointer)

func (*Mat) InitHeader

func (mat *Mat) InitHeader(rows, cols, type_ int, data unsafe.Pointer, step int)

Initializes CvMat header

func (*Mat) Release

func (mat *Mat) Release()

Releases CvMat header and deallocates matrix data

(reference counting is used for data)

func (*Mat) Rows

func (mat *Mat) Rows() int

func (*Mat) Set

func (m *Mat) Set(row, col int, value float64)

func (*Mat) Step

func (mat *Mat) Step() int

func (*Mat) Type

func (mat *Mat) Type() int

type MatND

type MatND C.CvMatND

func CreateMatND

func CreateMatND(sizes []int, type_ int) *MatND

Allocates and initializes CvMatND header and allocates data

func CreateMatNDHeader

func CreateMatNDHeader(sizes []int, type_ int) *MatND

Allocates and initializes CvMatND header

func (*MatND) Clone

func (mat *MatND) Clone() *MatND

Creates a copy of CvMatND (except, may be, steps)

func (*MatND) Dims

func (m *MatND) Dims() int

func (*MatND) InitMatNDHeader

func (mat *MatND) InitMatNDHeader(sizes []int, type_ int, data unsafe.Pointer)

Initializes preallocated CvMatND header

func (*MatND) Release

func (mat *MatND) Release()

Releases CvMatND

func (*MatND) Type

func (m *MatND) Type() int

type MouseFunc

type MouseFunc interface{}

mouse callback

type MouseFuncA

type MouseFuncA func(event, x, y, flags int)

type MouseFuncB

type MouseFuncB func(event, x, y, flags int, param ...interface{})

type Point

type Point struct {
	X int
	Y int
}

type Point2D32f

type Point2D32f struct {
	X float32
	Y float32
}

type Point2D64f

type Point2D64f struct {
	X float64
	Y float64
}

type Point3D32f

type Point3D32f struct {
	X float32
	Y float32
	Z float32
}

type Point3D64f

type Point3D64f struct {
	X float64
	Y float64
	Z float64
}

type RNG

type RNG C.CvRNG

func NewRNG

func NewRNG(seed int64) RNG

func (*RNG) RandInt

func (rng *RNG) RandInt() uint32

func (*RNG) RandReal

func (rng *RNG) RandReal() float64

type Rect

type Rect C.CvRect

func (*Rect) Height

func (r *Rect) Height() int

func (*Rect) Init

func (r *Rect) Init(x, y, w, h int)

func (*Rect) ToROI

func (r *Rect) ToROI(coi int) IplROI

func (*Rect) Width

func (r *Rect) Width() int

func (*Rect) X

func (r *Rect) X() int

func (*Rect) Y

func (r *Rect) Y() int

type Scalar

type Scalar C.CvScalar

func ScalarAll

func ScalarAll(val0 float64) Scalar

type Size

type Size struct {
	Width  int
	Height int
}

func GetSize

func GetSize(img *IplImage) Size

type Size2D32f

type Size2D32f struct {
	Width  float32
	Height float32
}

type Slice

type Slice C.CvSlice

type SparseMat

type SparseMat C.CvSparseMat

func CreateSparseMat

func CreateSparseMat(sizes []int, type_ int) *SparseMat

Allocates and initializes CvSparseMat header and allocates data

func (*SparseMat) Clone

func (mat *SparseMat) Clone() *SparseMat

Creates a copy of CvSparseMat (except, may be, zero items)

func (*SparseMat) Dims

func (m *SparseMat) Dims() int

func (*SparseMat) InitSparseMatIterator

func (mat *SparseMat) InitSparseMatIterator(iter *SparseMatIterator) *SparseNode

Initializes sparse array iterator

(returns the first node or NULL if the array is empty)

func (*SparseMat) Release

func (mat *SparseMat) Release()

Releases CvSparseMat

func (*SparseMat) Type

func (m *SparseMat) Type() int

type SparseMatIterator

type SparseMatIterator C.CvSparseMatIterator

func (*SparseMatIterator) CurIdx

func (node *SparseMatIterator) CurIdx() int

func (*SparseMatIterator) Mat

func (node *SparseMatIterator) Mat() *SparseMat

func (*SparseMatIterator) Next

func (iter *SparseMatIterator) Next() *SparseNode

returns next sparse array node (or NULL if there is no more nodes)

func (*SparseMatIterator) Node

func (node *SparseMatIterator) Node() *SparseNode

type SparseNode

type SparseNode C.CvSparseNode

func (*SparseNode) HashVal

func (node *SparseNode) HashVal() uint32

func (*SparseNode) Next

func (node *SparseNode) Next() *SparseNode

type TermCriteria

type TermCriteria C.CvTermCriteria

func (*TermCriteria) Epsilon

func (x *TermCriteria) Epsilon() float64

func (*TermCriteria) Init

func (x *TermCriteria) Init(type_, max_iter int, epsilon float64)

func (*TermCriteria) MaxIter

func (x *TermCriteria) MaxIter() int

func (*TermCriteria) Type

func (x *TermCriteria) Type() int

type TrackbarFunc

type TrackbarFunc interface{}

trackbar callback

type TrackbarFuncA

type TrackbarFuncA func(pos int)

type TrackbarFuncB

type TrackbarFuncB func(pos int, param ...interface{})

type VideoWriter

type VideoWriter C.CvVideoWriter

"black box" video file writer structure

func NewVideoWriter

func NewVideoWriter(filename string,
	fourcc int32, fps float32,
	frame_width, frame_height,
	is_color int) *VideoWriter

initialize video file writer

func (*VideoWriter) Release

func (writer *VideoWriter) Release()

close video file writer

func (*VideoWriter) WriteFrame

func (writer *VideoWriter) WriteFrame(image *IplImage) int

write frame to video file

type Window

type Window struct {
	// contains filtered or unexported fields
}

named window

func NewWindow

func NewWindow(name string, flags ...int) *Window

create window

func (*Window) CreateTrackbar

func (win *Window) CreateTrackbar(name string,
	value, count int,
	on_changed TrackbarFunc, param ...interface{}) bool

create trackbar and display it on top of given window, set callback

func (*Window) Destroy

func (win *Window) Destroy()

destroy window and all the trackers associated with it

func (*Window) GetHandle

func (win *Window) GetHandle() unsafe.Pointer

get native window handle (HWND in case of Win32 and Widget in case of X Window)

func (*Window) GetTrackbarPos

func (win *Window) GetTrackbarPos(name string) (value, max int)

retrieve or set trackbar position

func (*Window) GetWindowName

func (win *Window) GetWindowName() string

get name of highgui window given its native handle

func (*Window) Move

func (win *Window) Move(x, y int)

func (*Window) Resize

func (win *Window) Resize(width, height int)

resize/move window

func (*Window) SetMouseCallback

func (win *Window) SetMouseCallback(on_mouse MouseFunc, param ...interface{})

assign callback for mouse events

func (*Window) SetTrackbarPos

func (win *Window) SetTrackbarPos(name string, pos int)

func (*Window) ShowImage

func (win *Window) ShowImage(image *IplImage)

display image within window (highgui windows remember their content)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL