1
0
Fork 0
mirror of https://github.com/ruby-opencv/ruby-opencv synced 2023-03-27 23:22:12 -04:00
ruby-opencv/test/test_cascadeclassifier.rb
2016-04-03 07:47:06 +09:00

61 lines
1.6 KiB
Ruby
Executable file

#!/usr/bin/env ruby
# -*- mode: ruby; coding: utf-8 -*-
require 'opencv'
require File.expand_path(File.dirname(__FILE__)) + '/helper'
include Cv
class TestCascadeClassifier < OpenCVTestCase
def test_initialize
c = CascadeClassifier.new
assert_equal(CascadeClassifier, c.class)
c = CascadeClassifier.new(HAARCASCADE_FRONTALFACE_ALT)
assert_equal(CascadeClassifier, c.class)
assert_raise(TypeError) {
CascadeClassifier.new(DUMMY_OBJ)
}
end
def test_load
c = CascadeClassifier.new
ret = c.load(HAARCASCADE_FRONTALFACE_ALT)
assert(ret)
ret = c.load('/file/not/exist')
assert_false(ret)
assert_raise(TypeError) {
c2 = CascadeClassifier.new
c2.load(DUMMY_OBJ)
}
end
def test_detect_multi_scale
c = CascadeClassifier.new(HAARCASCADE_FRONTALFACE_ALT)
m = Cv::imread(FILENAME_GIRLS_PLAY_AND_PLANT_FLOWERS_IN_THE_PARK, IMREAD_ANYDEPTH | IMREAD_ANYCOLOR)
rects = c.detect_multi_scale(m)
assert_equal(3, rects.size)
rects = c.detect_multi_scale(m, scale_factor: 1.2, min_neighbors: 5, min_size: Size.new(50, 50), max_size: Size.new(60, 60))
assert_equal(1, rects.size)
assert_raise(TypeError) {
c.detect_multi_scale(DUMMY_OBJ)
}
assert_raise(TypeError) {
c.detect_multi_scale(m, DUMMY_OBJ)
}
# rects = c.detect_multi_scale(m)
# rects.each do |r|
# puts r.to_s
# pt1 = Point.new(r.x, r.y)
# pt2 = Point.new(r.x + r.width, r.y + r.height)
# m.rectangle!(pt1, pt2, Scalar.new(0, 255, 255), thickness: 3, line_type: CV_AA)
# end
# snap(m)
end
end