diff --git a/lib/opencv.rb b/lib/opencv.rb index 752fb18..94caf34 100644 --- a/lib/opencv.rb +++ b/lib/opencv.rb @@ -4,3 +4,4 @@ require_relative "opencv/basic_structs" require_relative "opencv/cvmat" require_relative "opencv/iplimage" require_relative "opencv/cvhaarclassifiercascade" +require_relative "opencv/cvcapture" diff --git a/lib/opencv/cvcapture.rb b/lib/opencv/cvcapture.rb new file mode 100644 index 0000000..30d7918 --- /dev/null +++ b/lib/opencv/cvcapture.rb @@ -0,0 +1,10 @@ +module Cv + class CvCapture < VideoCapture + alias_method :query, :read + alias_method :close, :release + + def self.open(value = nil) + self.new(value) + end + end +end diff --git a/test/legacy/test_cvcapture.rb b/test/legacy/test_cvcapture.rb new file mode 100755 index 0000000..0b99fec --- /dev/null +++ b/test/legacy/test_cvcapture.rb @@ -0,0 +1,50 @@ +#!/usr/bin/env ruby +# -*- mode: ruby; coding: utf-8 -*- +require 'test/unit' +require 'opencv' +require File.expand_path(File.dirname(__FILE__)) + '/../helper' + +include OpenCV + +# Tests for OpenCV::CvCapture +class TestCvCapture < OpenCVTestCase + def setup + @cap = CvCapture.open(AVI_SAMPLE) + @cap.query + end + + def teardown + @cap = nil + end + + def test_open + cap1 = CvCapture.open(AVI_SAMPLE) + assert_equal(CvCapture, cap1.class) + + # Uncomment the following lines to test capturing from camera + # + # cap2 = CvCapture.open(0) + # assert_equal(CvCapture, cap2.class) + end + + def test_close + cap1 = CvCapture.open(AVI_SAMPLE) + cap1.close + assert_false(cap1.opened?) + end + + def test_grab + assert(@cap.grab) + end + + def test_retrieve + @cap.grab + img = @cap.retrieve + assert_equal(Mat, img.class) + end + + def test_query + img = @cap.query + assert_equal(Mat, img.class) + end +end