Cv
view release on metacpan or search on metacpan
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);
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
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;
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 )