Cv

 view release on metacpan or  search on metacpan

Cv.xs  view on Meta::CPAN

	XSRETURN(1);


MODULE = Cv	PACKAGE = Cv
IplConvKernel*
cvCreateStructuringElementEx(int cols, int rows, int anchorX, int anchorY, int shape, int* values=NULL)


MODULE = Cv	PACKAGE = Cv::Arr
void
cvDilate(const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1)
POSTCALL:
	ST(0) = ST(1);
	XSRETURN(1);

void
cvErode(const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1)
POSTCALL:
	ST(0) = ST(1);
	XSRETURN(1);

void
cvFilter2D(const CvArr* src, CvArr* dst, const CvMat* kernel, CvPoint anchor=cvPoint(-1, -1))
POSTCALL:
	ST(0) = ST(1);
	XSRETURN(1);

void
cvLaplace(const CvArr* src, CvArr* dst, int apertureSize=3)
POSTCALL:
	ST(0) = ST(1);
	XSRETURN(1);

void
cvMorphologyEx(const CvArr* src, CvArr* dst, CvArr* temp, IplConvKernel* element, int operation, int iterations=1)
POSTCALL:
	ST(0) = ST(1);
	XSRETURN(1);

void
cvPyrDown(const CvArr* src, CvArr* dst, int filter=CV_GAUSSIAN_5x5)
POSTCALL:
	ST(0) = ST(1);
	XSRETURN(1);

Cv.xs  view on Meta::CPAN

C_ARGS:
	prev, curr, prevPyr, currPyr, prevFeatures, currFeatures, length(prevFeatures), winSize, level, status, track_error, criteria, flags
OUTPUT:
	currFeatures
	status
	track_error

#if _CV_VERSION() >= _VERSION(2,0,0)

void
cvCalcOpticalFlowFarneback(const CvArr* prev, const CvArr* next, CvArr* flow, double pyr_scale, int levels, int winsize, int iterations, int poly_n, double poly_sigma, int flags);
ALIAS: Cv::cvCalcOpticalFlowFarneback = 1

#endif

int
cvCamShift(const CvArr* prob_image, CvRect window, CvTermCriteria criteria, comp, box)
ALIAS: Cv::cvCamShift = 1
INPUT:
	CvConnectedComp &comp = NO_INIT
	CvBox2D &box = NO_INIT

lib/Cv.pm  view on Meta::CPAN

sub CopyMakeBorder {
	# CopyMakeBorder(src, dst, offset, bordertype, [value]);
	my $src = shift;
	my $dst = dst(@_) || $src->new;
	unshift(@_, $src, $dst);
	goto &cvCopyMakeBorder;
}


sub Dilate {
	# Dilate(src, dst, [element], [iterations])
	my $src = shift;
	my $dst = dst(@_) || $src->new;
	unshift(@_, $src, $dst);
	goto &cvDilate;
}


sub Erode {
	# Erode(src, dst, [element], [iterations])
	my $src = shift;
	my $dst = dst(@_) || $src->new;
	unshift(@_, $src, $dst);
	goto &cvErode;
}


sub Filter2D {
	# Filter2D(src, dst, [kernel], [anchor])
	my $src = shift;

lib/Cv.pm  view on Meta::CPAN

sub Laplace {
	# Laplace(src, dst, [apertureSize])
	my $src = shift;
	my $dst = dst(@_) || $src->new(&Cv::CV_16SC($src->channels));
	unshift(@_, $src, $dst);
	goto &cvLaplace;
}


sub MorphologyEx {
	# MorphologyEx(src, dst, temp, element, operation, [iterations])
	my $src = shift;
	my $dst = dst(@_) || $src->new;
	if (@_) {
		my $temp = dst(@_);
		unless ($temp) {
			if ($_[1] == &Cv::CV_MOP_TOPHAT ||
				$_[1] == &Cv::CV_MOP_BLACKHAT) {
				$temp ||= $src->new;
			}
		}

sample/morphology.pl  view on Meta::CPAN

    "\te - use elliptic structuring element\n",
    "\tc - use cross-shaped structuring element\n",
    "\tSPACE - loop through all the options\n";

# create windows for output images
my $oc_win = "Open/Close";
my $ed_win = "Erode/Dilate";
Cv->NamedWindow($oc_win, 1);
Cv->NamedWindow($ed_win, 1);

Cv->CreateTrackbar("iterations", $oc_win, my $oc_pos = $max_iters,
				   $max_iters*2 + 1, \&OpenClose);
Cv->CreateTrackbar("iterations", $ed_win, my $ed_pos = 10,
				   $max_iters*2 + 1,  \&ErodeDilate);

while (1) {
    &OpenClose;
    &ErodeDilate;
    my $c = Cv->WaitKey;
    if (($c & 0x7f) == 27) {
		last;
    } elsif (($c & 0x7f) == ord('e')) {
		$element_shape = CV_SHAPE_ELLIPSE;

t/2morphologyEx.t  view on Meta::CPAN

# -*- mode: perl; coding: utf-8; tab-width: 4 -*-

use strict;
use warnings;
# use Test::More qw(no_plan);
use Test::More tests => 17;
use Test::Exception;
BEGIN { use_ok('Cv', -nomore) }

#  void cvMorphologyEx(src, dst, temp, element, operation, iterations=1)
#  (1) $src->MorphologyEx($element, CV_MOP_OPEN);
#  (2) $src->MorphologyEx($element, CV_MOP_TOPHAT);
#  (3) $src->MorphologyEx($dst, $tmp, $element, CV_MOP_BLACKHAT);

if (1) {
	my $element = Cv->CreateStructuringElementEx(3, 3, 1, 1, CV_SHAPE_RECT);
	my $av;
	no strict 'refs';
	no warnings 'redefine';
	local *Cv::Arr::cvMorphologyEx = sub { $av = \@_; $_[0]; };

t/2morphologyEx.t  view on Meta::CPAN

	$src->MorphologyEx($dst, $tmp, $element, CV_MOP_BLACKHAT);
	is($av->[0], $src);
	is($av->[1], $dst);
	is($av->[2], $tmp);
	is($av->[3], $element);
	is($av->[4], CV_MOP_BLACKHAT);
}

if (10) {
	my $src = Cv::Mat->new([ 240, 320 ], CV_8UC3);
	throws_ok { $src->MorphologyEx } qr/Usage: Cv::Arr::cvMorphologyEx\(src, dst, temp, element, operation, iterations=1\) at $0/;
}



( run in 0.614 second using v1.01-cache-2.11-cpan-71847e10f99 )