mirror of
https://github.com/ruby-opencv/ruby-opencv
synced 2023-03-27 23:22:12 -04:00
61 lines
1.6 KiB
Ruby
Executable file
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
|