mirror of
https://github.com/ruby-opencv/ruby-opencv
synced 2023-03-27 23:22:12 -04:00
57 lines
1.5 KiB
Ruby
Executable file
57 lines
1.5 KiB
Ruby
Executable file
#!/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 matching functions of OpenCV::CvMat
|
|
class TestCvMat_matching < OpenCVTestCase
|
|
def setup
|
|
@query = read_test_image('query.png')
|
|
@images = ['1.png', '2.png', '3.png'].map{|f| read_test_image('train', f)}
|
|
end
|
|
|
|
def data_dir
|
|
File.join(File.dirname(__FILE__), '..', 'examples', 'matching_to_many_images')
|
|
end
|
|
|
|
def read_test_image(*path)
|
|
IplImage.load File.join(data_dir, *path), CV_LOAD_IMAGE_GRAYSCALE
|
|
end
|
|
|
|
def test_match_descriptors
|
|
matchs = @query.match_descriptors(@images)
|
|
match_index, count = matchs.max_by {|image_index, count| count}
|
|
assert_equal 2, match_index
|
|
end
|
|
|
|
def test_match_descriptors_with_empty_image_array
|
|
assert_equal({}, @query.match_descriptors([]))
|
|
end
|
|
|
|
def test_match_descriptors_with_wrong_detector_type_argument
|
|
assert_raise ArgumentError do
|
|
@query.match_descriptors(@images, "Wrong")
|
|
end
|
|
end
|
|
|
|
def test_match_descriptors_with_wrong_descriptor_type_argument
|
|
assert_raise ArgumentError do
|
|
@query.match_descriptors(@images, "SURF", "wrong")
|
|
end
|
|
end
|
|
|
|
def test_match_descriptors_with_wrong_matcher_type_argument
|
|
assert_raise ArgumentError do
|
|
@query.match_descriptors(@images, "SURF", "SURF", "wrong")
|
|
end
|
|
end
|
|
|
|
def test_match_descriptors_with_invalid_image_array
|
|
assert_raise TypeError do
|
|
@query.match_descriptors([DUMMY_OBJ, DUMMY_OBJ])
|
|
end
|
|
end
|
|
end
|