package OpenCV::Webcam; our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); our $VERSION = '0.01'; use Inline C => Config => MYEXTLIB => 'C:\OpenCV2.0\lib\libcv200.dll.a C:\OpenCV2.0\lib\libhighgui200.dll.a C:\OpenCV2.0\lib\libcxcore200.dll.a', INC => '-IC:\OpenCV2.0\include\opencv'; use Inline C => <<'END_OF_C_CODE'; #include "cv.h" #include "highgui.h" CvCapture *capture = 0; IplImage *frame = 0; int* height, width, step, channels, depth; int new() { capture = cvCaptureFromCAM( 0 ); printf("\nSetting Capture!\n"); } char* GetImage() { char *data; printf("\nGetting Image Data!\n"); frame = cvQueryFrame( capture ); cvCvtColor(frame, frame, CV_BGR2RGB); data = (char*)frame->imageData; return(data); } int Release() { printf("\nReleasing Capture!\n"); cvReleaseCapture( &capture ); } END_OF_C_CODE #### use Gtk2 '-init'; use Glib qw(TRUE FALSE); use OpenCV::Webcam ; $window = Gtk2::Window->new(); $capture = OpenCV::Webcam::new(); $data = OpenCV::Webcam::GetImage(); $pixbuf = Gtk2::Gdk::Pixbuf->new_from_data ($data, 'rgb', FASLE, 8, 640, 480, 1920); $image = Gtk2::Image->new_from_pixbuf ($pixbuf); $window->add($image); $window->show_all(); Gtk2->main; #### GLib-GObject-CRITICAL **: g_param_spec_float: assertion `default_value >= minimum && default_value <= maximum' failed at web.pl line 8. Gtk-CRITICAL **: gtk_widget_class_install_style_property: assertion `G_IS_PARAM_SPEC (pspec)' failed at web.pl line 8.