file Opencv.xs
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include <highgui.h>
#include <cv.h>
#include "ppport.h"
// typedef struct _IplImage CVImg;
MODULE = OpenCV PACKAGE = OpenCV
int
cvNamedWindow(name,flags)
char *name
int flags
IplImage*
cvLoadImage(name,flags)
char *name
int flags
void
cvShowImage(name,img)
char *name
IplImage* img
file typemap
TYPEMAP
IplImage* T_PTROBJ
file lib/OpenCV.pm
require Exporter;
require DynaLoader;
our @ISA = qw(Exporter DynaLoader);
our @EXPORT = qw(
cvNamedWindow cvLoadImage cvShowImage
);
file Makefile.PL
WriteMakefile(
NAME => 'OpenCV',
VERSION_FROM => 'lib/OpenCV.pm', # finds $VERSION
PREREQ_PM => {}, # e.g., Module::Name => 1.1
($] >= 5.005 ? ## Add these new keywords supported since 5.005
(ABSTRACT_FROM => 'lib/OpenCV.pm', # retrieve abstract from module
AUTHOR => 'dryman <[email protected]>') : ()),
LIBS => [`pkg-config --libs opencv`],
DEFINE => '',
INC => `pkg-config --cflags opencv`,
);
測試..
#!/usr/bin/perl
use OpenCV;
cvNamedWindow("hello world",1);
$img=cvLoadImage("18.jpg",0);
cvShowImage("hello world",$img);
真的可以讀入圖片並顯示
不過我忘了加入cvWaitKey來讓它停住就是了:P
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.46.171
我只有弄三個function:
cvNamedWindow
cvLoadImage
cvShowImage
首先h2xs -A -n OpenCV