Cv
view release on metacpan or search on metacpan
# const char* err_msg, const char* file_name, int line)
sub cvError {
goto &$ERROR;
}
# CvErrorCallback cvRedirectError(
# CvErrorCallback error_handler, void* userdata=NULL, void** prevUserdata=NULL)
sub cvRedirectError {
my $handler; ($handler, $_[2]) = ($ERROR{handler}, $ERROR{userdata});
($ERROR{handler}, $ERROR{userdata}) = @_[0..1];
$handler;
}
sub cvGetErrStatus {
$ERROR{status};
}
sub cvSetErrStatus {
my $status = $ERROR{status};
($ERROR{status}) = @_;
$status;
}
sub cvGetErrMode {
$ERROR{mode};
}
sub cvSetErrMode {
my $mode = $ERROR{mode};
($ERROR{mode}) = @_;
$mode;
}
our %SIZEOF;
sub CV_SIZEOF {
my ($name) = @_;
my $size = $SIZEOF{$name};
Carp::croak "unknwon type $name in CV_SIZEOF" unless defined $size;
$size;
}
# ============================================================
# imgproc. Image Processing: Image Filtering
# ============================================================
package Cv::Arr;
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;
my $dst = dst(@_) || $src->new;
unshift(@_, $src, $dst);
goto &cvFilter2D;
}
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;
}
}
unshift(@_, $temp);
}
unshift(@_, $src, $dst);
goto &cvMorphologyEx;
}
sub PyrDown {
# PyrDown(src, dst, [filter]);
my $src = shift;
my $dst = dst(@_) || $src->new([map { int(($_ + 1) / 2) } @{$src->sizes}]);
unshift(@_, $src, $dst);
goto &cvPyrDown;
}
sub PyrUp {
# PyrUp(src, dst, [filter]);
my $src = shift;
my $dst = dst(@_) || $src->new([map { int($_ * 2) } @{$src->sizes}]);
unshift(@_, $src, $dst);
goto &cvPyrUp;
}
sub Smooth {
# Smooth(src, dst, [smoothtype], [param1], [param2], [param3], [param4])
my $src = shift;
my $dst = dst(@_) || $src->new;
unshift(@_, $src, $dst);
goto &cvSmooth;
}
sub Sobel {
# Sobel(src, dst, xorder, yorder, [apertureSize])
my $src = shift;
my $dst = dst(@_) || $src->new;
unshift(@_, $src, $dst);
goto &cvSobel;
}
package Cv::ConvKernel;
{ *new = \&Cv::CreateStructuringElementEx }
# ============================================================
# imgproc. Image Processing: Geometric Image Transformations
# ============================================================
( run in 0.815 second using v1.01-cache-2.11-cpan-71847e10f99 )