ruby-opencv 0.0.16 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/ext/opencv/cvcontour.cpp +34 -0
- data/ext/opencv/cvcontour.h +3 -0
- data/ext/opencv/cvseq.cpp +39 -24
- data/ext/opencv/opencv.h +0 -3
- data/lib/opencv/version.rb +1 -2
- data/ruby-opencv.gemspec +5 -5
- data/test/helper.rb +1 -0
- data/test/test_cvcontour.rb +22 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9ab69e46cbd94956c429710dd017b78ee16f718
|
4
|
+
data.tar.gz: f6773286bb9c80677d4c35da2b24608991c104a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b90d2239d49e50a6f08b1d79cb584e0f035f4951debeadf308e8996a7c5baf5428c3419efc4a55d39aacd3037e4671627fdfb47e54c6c839b394d1beb590450e
|
7
|
+
data.tar.gz: '089851b80f9cb2dadefb8f432fd25da0bb83c9e6726d217456cc8d8b4540c20d8629ea299dfbcfbaec21a9c8b5b684aa7f4325d68bba24303c6a930c6ad7879e'
|
data/Rakefile
CHANGED
@@ -17,7 +17,7 @@ Hoe.plugin :gemspec
|
|
17
17
|
hoespec = Hoe.spec 'ruby-opencv' do |s|
|
18
18
|
s.summary = 'OpenCV wrapper for Ruby'
|
19
19
|
s.description = 'ruby-opencv is a wrapper of OpenCV for Ruby. It helps you to write computer vision programs (e.g. detecting faces from pictures) with Ruby.'
|
20
|
-
s.licenses = ['
|
20
|
+
s.licenses = ['BSD-3-Clause']
|
21
21
|
s.developer('lsxi', 'masakazu.yonekura@gmail.com')
|
22
22
|
s.developer('ser1zw', 'azariahsawtikes@gmail.com')
|
23
23
|
s.developer('pcting', 'pcting@gmail.com')
|
data/ext/opencv/cvcontour.cpp
CHANGED
@@ -292,6 +292,39 @@ rb_point_polygon_test(VALUE self, VALUE point, VALUE measure_dist)
|
|
292
292
|
return rb_float_new(dist);
|
293
293
|
}
|
294
294
|
|
295
|
+
/*
|
296
|
+
* call-seq:
|
297
|
+
* match_shapes(object, method) -> float
|
298
|
+
*
|
299
|
+
* Compares two shapes(self and object). <i>object</i> should be CvContour.
|
300
|
+
*
|
301
|
+
* A - object1, B - object2:
|
302
|
+
* * method=CV_CONTOURS_MATCH_I1
|
303
|
+
* I1(A,B)=sumi=1..7abs(1/mAi - 1/mBi)
|
304
|
+
* * method=CV_CONTOURS_MATCH_I2
|
305
|
+
* I2(A,B)=sumi=1..7abs(mAi - mBi)
|
306
|
+
* * method=CV_CONTOURS_MATCH_I3
|
307
|
+
* I3(A,B)=sumi=1..7abs(mAi - mBi)/abs(mAi)
|
308
|
+
*/
|
309
|
+
VALUE
|
310
|
+
rb_match_shapes(int argc, VALUE *argv, VALUE self)
|
311
|
+
{
|
312
|
+
VALUE object, method, param;
|
313
|
+
rb_scan_args(argc, argv, "21", &object, &method, ¶m);
|
314
|
+
int method_flag = CVMETHOD("COMPARISON_METHOD", method);
|
315
|
+
if (!rb_obj_is_kind_of(object, cCvContour::rb_class()))
|
316
|
+
rb_raise(rb_eTypeError, "argument 1 (shape) should be %s",
|
317
|
+
rb_class2name(cCvContour::rb_class()));
|
318
|
+
double result = 0;
|
319
|
+
try {
|
320
|
+
result = cvMatchShapes(CVARR(self), CVARR(object), method_flag);
|
321
|
+
}
|
322
|
+
catch (cv::Exception& e) {
|
323
|
+
raise_cverror(e);
|
324
|
+
}
|
325
|
+
return rb_float_new(result);
|
326
|
+
}
|
327
|
+
|
295
328
|
VALUE new_object()
|
296
329
|
{
|
297
330
|
VALUE object = rb_allocate(rb_klass);
|
@@ -343,6 +376,7 @@ init_ruby_class()
|
|
343
376
|
rb_define_method(rb_klass, "in?", RUBY_METHOD_FUNC(rb_in_q), 1);
|
344
377
|
rb_define_method(rb_klass, "measure_distance", RUBY_METHOD_FUNC(rb_measure_distance), 1);
|
345
378
|
rb_define_method(rb_klass, "point_polygon_test", RUBY_METHOD_FUNC(rb_point_polygon_test), 2);
|
379
|
+
rb_define_method(rb_klass, "match_shapes", RUBY_METHOD_FUNC(rb_match_shapes), -1);
|
346
380
|
}
|
347
381
|
|
348
382
|
__NAMESPACE_END_CVCONTOUR
|
data/ext/opencv/cvcontour.h
CHANGED
@@ -33,6 +33,9 @@ VALUE rb_in_q(VALUE self, VALUE point);
|
|
33
33
|
VALUE rb_measure_distance(VALUE self, VALUE point);
|
34
34
|
VALUE rb_point_polygon_test(VALUE self, VALUE point, VALUE measure_dist);
|
35
35
|
|
36
|
+
/* Matching*/
|
37
|
+
VALUE rb_match_shapes(int argc, VALUE *argv, VALUE self);
|
38
|
+
|
36
39
|
VALUE new_object();
|
37
40
|
__NAMESPACE_END_CVCONTOUR
|
38
41
|
|
data/ext/opencv/cvseq.cpp
CHANGED
@@ -27,13 +27,48 @@ rb_class()
|
|
27
27
|
return rb_klass;
|
28
28
|
}
|
29
29
|
|
30
|
+
int
|
31
|
+
eltype2class(int eltype, VALUE* ret) {
|
32
|
+
int found = 1;
|
33
|
+
|
34
|
+
switch (eltype) {
|
35
|
+
case CV_SEQ_ELTYPE_POINT:
|
36
|
+
*ret = cCvPoint::rb_class();
|
37
|
+
break;
|
38
|
+
case CV_32FC2:
|
39
|
+
*ret = cCvPoint2D32f::rb_class();
|
40
|
+
break;
|
41
|
+
case CV_SEQ_ELTYPE_POINT3D:
|
42
|
+
*ret = cCvPoint3D32f::rb_class();
|
43
|
+
break;
|
44
|
+
case CV_SEQ_ELTYPE_CODE:
|
45
|
+
case CV_SEQ_ELTYPE_INDEX:
|
46
|
+
*ret = rb_cFixnum;
|
47
|
+
break;
|
48
|
+
case CV_SEQ_ELTYPE_PPOINT: // or CV_SEQ_ELTYPE_PTR:
|
49
|
+
// Not supported
|
50
|
+
rb_raise(rb_eArgError, "seq_flags %d is not supported.", eltype);
|
51
|
+
break;
|
52
|
+
default:
|
53
|
+
found = 0;
|
54
|
+
*ret = cCvPoint::rb_class();
|
55
|
+
break;
|
56
|
+
}
|
57
|
+
|
58
|
+
return found;
|
59
|
+
}
|
60
|
+
|
30
61
|
VALUE
|
31
62
|
seqblock_class(void *ptr)
|
32
63
|
{
|
33
|
-
VALUE klass;
|
34
|
-
if (
|
35
|
-
|
64
|
+
VALUE klass = Qnil;
|
65
|
+
if (st_lookup(seqblock_klass_table, (st_data_t)ptr, (st_data_t*)&klass)) {
|
66
|
+
return klass;
|
36
67
|
}
|
68
|
+
|
69
|
+
int eltype = CV_SEQ_ELTYPE((CvSeq*)ptr);
|
70
|
+
eltype2class(eltype, &klass);
|
71
|
+
|
37
72
|
return klass;
|
38
73
|
}
|
39
74
|
|
@@ -66,28 +101,8 @@ create_seq(int seq_flags, size_t header_size, VALUE storage_value)
|
|
66
101
|
int eltype = seq_flags & CV_SEQ_ELTYPE_MASK;
|
67
102
|
storage_value = CHECK_CVMEMSTORAGE(storage_value);
|
68
103
|
|
69
|
-
|
70
|
-
case CV_SEQ_ELTYPE_POINT:
|
71
|
-
klass = cCvPoint::rb_class();
|
72
|
-
break;
|
73
|
-
case CV_32FC2:
|
74
|
-
klass = cCvPoint2D32f::rb_class();
|
75
|
-
break;
|
76
|
-
case CV_SEQ_ELTYPE_POINT3D:
|
77
|
-
klass = cCvPoint3D32f::rb_class();
|
78
|
-
break;
|
79
|
-
case CV_SEQ_ELTYPE_CODE:
|
80
|
-
case CV_SEQ_ELTYPE_INDEX:
|
81
|
-
klass = rb_cFixnum;
|
82
|
-
break;
|
83
|
-
case CV_SEQ_ELTYPE_PPOINT: // or CV_SEQ_ELTYPE_PTR:
|
84
|
-
// Not supported
|
85
|
-
rb_raise(rb_eArgError, "seq_flags %d is not supported.", eltype);
|
86
|
-
break;
|
87
|
-
default:
|
104
|
+
if (!eltype2class(eltype, &klass)) {
|
88
105
|
seq_flags = CV_SEQ_ELTYPE_POINT | CV_SEQ_KIND_GENERIC;
|
89
|
-
klass = cCvPoint::rb_class();
|
90
|
-
break;
|
91
106
|
}
|
92
107
|
|
93
108
|
int mat_type = CV_MAT_TYPE(seq_flags);
|
data/ext/opencv/opencv.h
CHANGED
@@ -153,11 +153,8 @@ extern "C" {
|
|
153
153
|
// useful macros
|
154
154
|
#define IF_INT(val, ifnone) NIL_P(val) ? ifnone : NUM2INT(val)
|
155
155
|
#define IF_DBL(val, ifnone) NIL_P(val) ? ifnone : NUM2DBL(val)
|
156
|
-
#define IF_STRING(str) NIL_P(str) ? NULL : TYPE(str) == T_STRING ? rb
|
157
156
|
#define IF_BOOL(val, t, f, ifnone) val == Qtrue ? t : val == Qfalse ? f : ifnone
|
158
157
|
|
159
|
-
#define IF_DEPTH(val, ifnone) NIL_P(val) ? ifnone : NUM2INT(val)
|
160
|
-
|
161
158
|
#define REGISTER_HASH(hash, str, value) rb_hash_aset(hash, ID2SYM(rb_intern(str)), INT2FIX(value))
|
162
159
|
#define LOOKUP_HASH(hash, key_as_cstr) (rb_hash_lookup(hash, ID2SYM(rb_intern(key_as_cstr))))
|
163
160
|
|
data/lib/opencv/version.rb
CHANGED
data/ruby-opencv.gemspec
CHANGED
@@ -1,24 +1,24 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: ruby-opencv 0.0.
|
2
|
+
# stub: ruby-opencv 0.0.17.20160717014809 ruby lib
|
3
3
|
# stub: ext/opencv/extconf.rb
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "ruby-opencv".freeze
|
7
|
-
s.version = "0.0.
|
7
|
+
s.version = "0.0.17"
|
8
8
|
|
9
9
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
10
10
|
s.require_paths = ["lib".freeze]
|
11
11
|
s.authors = ["lsxi".freeze, "ser1zw".freeze, "pcting".freeze]
|
12
|
-
s.date = "2016-
|
12
|
+
s.date = "2016-07-16"
|
13
13
|
s.description = "ruby-opencv is a wrapper of OpenCV for Ruby. It helps you to write computer vision programs (e.g. detecting faces from pictures) with Ruby.".freeze
|
14
14
|
s.email = ["masakazu.yonekura@gmail.com".freeze, "azariahsawtikes@gmail.com".freeze, "pcting@gmail.com".freeze]
|
15
15
|
s.extensions = ["ext/opencv/extconf.rb".freeze]
|
16
16
|
s.extra_rdoc_files = ["DEVELOPERS_NOTE.md".freeze, "History.txt".freeze, "License.txt".freeze, "Manifest.txt".freeze, "README.md".freeze, "examples/facerec/readme.md".freeze]
|
17
17
|
s.files = [".gitignore".freeze, ".yardopts".freeze, "DEVELOPERS_NOTE.md".freeze, "Gemfile".freeze, "History.txt".freeze, "License.txt".freeze, "Manifest.txt".freeze, "README.md".freeze, "Rakefile".freeze, "config.yml".freeze, "examples/alpha_blend.rb".freeze, "examples/contours/bitmap-contours-with-labels.png".freeze, "examples/contours/bitmap-contours.png".freeze, "examples/contours/bounding-box-detect-canny.rb".freeze, "examples/contours/contour_retrieval_modes.rb".freeze, "examples/contours/rotated-boxes.jpg".freeze, "examples/convexhull.rb".freeze, "examples/face_detect.rb".freeze, "examples/facerec/create_csv.rb".freeze, "examples/facerec/facerec_eigenfaces.rb".freeze, "examples/facerec/facerec_fisherfaces.rb".freeze, "examples/facerec/facerec_lbph.rb".freeze, "examples/facerec/readme.md".freeze, "examples/find_obj.rb".freeze, "examples/houghcircle.rb".freeze, "examples/images/box.png".freeze, "examples/images/box_in_scene.png".freeze, "examples/images/inpaint.png".freeze, "examples/images/lena-256x256.jpg".freeze, "examples/images/lena-eyes.jpg".freeze, "examples/images/lenna-rotated.jpg".freeze, "examples/images/lenna.jpg".freeze, "examples/images/stuff.jpg".freeze, "examples/images/tiffany.jpg".freeze, "examples/inpaint.rb".freeze, "examples/match_kdtree.rb".freeze, "examples/match_template.rb".freeze, "examples/paint.rb".freeze, "examples/snake.rb".freeze, "ext/opencv/algorithm.cpp".freeze, "ext/opencv/algorithm.h".freeze, "ext/opencv/curve.cpp".freeze, "ext/opencv/curve.h".freeze, "ext/opencv/cvavgcomp.cpp".freeze, "ext/opencv/cvavgcomp.h".freeze, "ext/opencv/cvbox2d.cpp".freeze, "ext/opencv/cvbox2d.h".freeze, "ext/opencv/cvcapture.cpp".freeze, "ext/opencv/cvcapture.h".freeze, "ext/opencv/cvchain.cpp".freeze, "ext/opencv/cvchain.h".freeze, "ext/opencv/cvcircle32f.cpp".freeze, "ext/opencv/cvcircle32f.h".freeze, "ext/opencv/cvconnectedcomp.cpp".freeze, "ext/opencv/cvconnectedcomp.h".freeze, "ext/opencv/cvcontour.cpp".freeze, "ext/opencv/cvcontour.h".freeze, "ext/opencv/cvcontourtree.cpp".freeze, "ext/opencv/cvcontourtree.h".freeze, "ext/opencv/cvconvexitydefect.cpp".freeze, "ext/opencv/cvconvexitydefect.h".freeze, "ext/opencv/cverror.cpp".freeze, "ext/opencv/cverror.h".freeze, "ext/opencv/cvfeaturetree.cpp".freeze, "ext/opencv/cvfeaturetree.h".freeze, "ext/opencv/cvfont.cpp".freeze, "ext/opencv/cvfont.h".freeze, "ext/opencv/cvhaarclassifiercascade.cpp".freeze, "ext/opencv/cvhaarclassifiercascade.h".freeze, "ext/opencv/cvhistogram.cpp".freeze, "ext/opencv/cvhistogram.h".freeze, "ext/opencv/cvhumoments.cpp".freeze, "ext/opencv/cvhumoments.h".freeze, "ext/opencv/cvline.cpp".freeze, "ext/opencv/cvline.h".freeze, "ext/opencv/cvmat.cpp".freeze, "ext/opencv/cvmat.h".freeze, "ext/opencv/cvmemstorage.cpp".freeze, "ext/opencv/cvmemstorage.h".freeze, "ext/opencv/cvmoments.cpp".freeze, "ext/opencv/cvmoments.h".freeze, "ext/opencv/cvpoint.cpp".freeze, "ext/opencv/cvpoint.h".freeze, "ext/opencv/cvpoint2d32f.cpp".freeze, "ext/opencv/cvpoint2d32f.h".freeze, "ext/opencv/cvpoint3d32f.cpp".freeze, "ext/opencv/cvpoint3d32f.h".freeze, "ext/opencv/cvrect.cpp".freeze, "ext/opencv/cvrect.h".freeze, "ext/opencv/cvscalar.cpp".freeze, "ext/opencv/cvscalar.h".freeze, "ext/opencv/cvseq.cpp".freeze, "ext/opencv/cvseq.h".freeze, "ext/opencv/cvsize.cpp".freeze, "ext/opencv/cvsize.h".freeze, "ext/opencv/cvsize2d32f.cpp".freeze, "ext/opencv/cvsize2d32f.h".freeze, "ext/opencv/cvslice.cpp".freeze, "ext/opencv/cvslice.h".freeze, "ext/opencv/cvsurfparams.cpp".freeze, "ext/opencv/cvsurfparams.h".freeze, "ext/opencv/cvsurfpoint.cpp".freeze, "ext/opencv/cvsurfpoint.h".freeze, "ext/opencv/cvtermcriteria.cpp".freeze, "ext/opencv/cvtermcriteria.h".freeze, "ext/opencv/cvtwopoints.cpp".freeze, "ext/opencv/cvtwopoints.h".freeze, "ext/opencv/cvutils.cpp".freeze, "ext/opencv/cvutils.h".freeze, "ext/opencv/cvvideowriter.cpp".freeze, "ext/opencv/cvvideowriter.h".freeze, "ext/opencv/eigenfaces.cpp".freeze, "ext/opencv/eigenfaces.h".freeze, "ext/opencv/extconf.rb".freeze, "ext/opencv/facerecognizer.cpp".freeze, "ext/opencv/facerecognizer.h".freeze, "ext/opencv/fisherfaces.cpp".freeze, "ext/opencv/fisherfaces.h".freeze, "ext/opencv/gui.cpp".freeze, "ext/opencv/gui.h".freeze, "ext/opencv/iplconvkernel.cpp".freeze, "ext/opencv/iplconvkernel.h".freeze, "ext/opencv/iplimage.cpp".freeze, "ext/opencv/iplimage.h".freeze, "ext/opencv/lbph.cpp".freeze, "ext/opencv/lbph.h".freeze, "ext/opencv/mouseevent.cpp".freeze, "ext/opencv/mouseevent.h".freeze, "ext/opencv/opencv.cpp".freeze, "ext/opencv/opencv.h".freeze, "ext/opencv/pointset.cpp".freeze, "ext/opencv/pointset.h".freeze, "ext/opencv/trackbar.cpp".freeze, "ext/opencv/trackbar.h".freeze, "ext/opencv/window.cpp".freeze, "ext/opencv/window.h".freeze, "images/CvMat_sobel.png".freeze, "images/CvMat_sub_rect.png".freeze, "images/CvSeq_relationmap.png".freeze, "lib/opencv.rb".freeze, "lib/opencv/psyched_yaml.rb".freeze, "lib/opencv/version.rb".freeze, "ruby-opencv.gemspec".freeze, "test/eigenfaces_save.xml".freeze, "test/fisherfaces_save.xml".freeze, "test/helper.rb".freeze, "test/lbph_save.xml".freeze, "test/runner.rb".freeze, "test/samples/airplane.jpg".freeze, "test/samples/baboon.jpg".freeze, "test/samples/baboon200.jpg".freeze, "test/samples/baboon200_rotated.jpg".freeze, "test/samples/blank0.jpg".freeze, "test/samples/blank1.jpg".freeze, "test/samples/blank2.jpg".freeze, "test/samples/blank3.jpg".freeze, "test/samples/blank4.jpg".freeze, "test/samples/blank5.jpg".freeze, "test/samples/blank6.jpg".freeze, "test/samples/blank7.jpg".freeze, "test/samples/blank8.jpg".freeze, "test/samples/blank9.jpg".freeze, "test/samples/cat.jpg".freeze, "test/samples/chessboard.jpg".freeze, "test/samples/contours.jpg".freeze, "test/samples/fruits.jpg".freeze, "test/samples/haarcascade_frontalface_alt.xml.gz".freeze, "test/samples/inpaint-mask.bmp".freeze, "test/samples/lena-256x256.jpg".freeze, "test/samples/lena-32x32.jpg".freeze, "test/samples/lena-eyes.jpg".freeze, "test/samples/lena-inpaint.jpg".freeze, "test/samples/lena.jpg".freeze, "test/samples/lines.jpg".freeze, "test/samples/messy0.jpg".freeze, "test/samples/messy1.jpg".freeze, "test/samples/movie_sample.avi".freeze, "test/samples/one_way_train_0000.jpg".freeze, "test/samples/one_way_train_0001.jpg".freeze, "test/samples/partially_blank0.jpg".freeze, "test/samples/partially_blank1.jpg".freeze, "test/samples/smooth0.jpg".freeze, "test/samples/smooth1.jpg".freeze, "test/samples/smooth2.jpg".freeze, "test/samples/smooth3.jpg".freeze, "test/samples/smooth4.jpg".freeze, "test/samples/smooth5.jpg".freeze, "test/samples/smooth6.jpg".freeze, "test/samples/str-cv-rotated.jpg".freeze, "test/samples/str-cv.jpg".freeze, "test/samples/str-ov.jpg".freeze, "test/samples/stuff.jpg".freeze, "test/test_curve.rb".freeze, "test/test_cvavgcomp.rb".freeze, "test/test_cvbox2d.rb".freeze, "test/test_cvcapture.rb".freeze, "test/test_cvchain.rb".freeze, "test/test_cvcircle32f.rb".freeze, "test/test_cvconnectedcomp.rb".freeze, "test/test_cvcontour.rb".freeze, "test/test_cvcontourtree.rb".freeze, "test/test_cverror.rb".freeze, "test/test_cvfeaturetree.rb".freeze, "test/test_cvfont.rb".freeze, "test/test_cvhaarclassifiercascade.rb".freeze, "test/test_cvhistogram.rb".freeze, "test/test_cvhumoments.rb".freeze, "test/test_cvline.rb".freeze, "test/test_cvmat.rb".freeze, "test/test_cvmat_drawing.rb".freeze, "test/test_cvmat_dxt.rb".freeze, "test/test_cvmat_imageprocessing.rb".freeze, "test/test_cvmoments.rb".freeze, "test/test_cvpoint.rb".freeze, "test/test_cvpoint2d32f.rb".freeze, "test/test_cvpoint3d32f.rb".freeze, "test/test_cvrect.rb".freeze, "test/test_cvscalar.rb".freeze, "test/test_cvseq.rb".freeze, "test/test_cvsize.rb".freeze, "test/test_cvsize2d32f.rb".freeze, "test/test_cvslice.rb".freeze, "test/test_cvsurfparams.rb".freeze, "test/test_cvsurfpoint.rb".freeze, "test/test_cvtermcriteria.rb".freeze, "test/test_cvtwopoints.rb".freeze, "test/test_cvvideowriter.rb".freeze, "test/test_eigenfaces.rb".freeze, "test/test_fisherfaces.rb".freeze, "test/test_iplconvkernel.rb".freeze, "test/test_iplimage.rb".freeze, "test/test_lbph.rb".freeze, "test/test_mouseevent.rb".freeze, "test/test_opencv.rb".freeze, "test/test_pointset.rb".freeze, "test/test_preliminary.rb".freeze, "test/test_trackbar.rb".freeze, "test/test_window.rb".freeze, "yard_extension.rb".freeze]
|
18
18
|
s.homepage = "https://github.com/ruby-opencv/ruby-opencv/".freeze
|
19
|
-
s.licenses = ["
|
19
|
+
s.licenses = ["BSD-3-Clause".freeze]
|
20
20
|
s.rdoc_options = ["--main".freeze, "README.md".freeze]
|
21
|
-
s.rubygems_version = "2.6.
|
21
|
+
s.rubygems_version = "2.6.6".freeze
|
22
22
|
s.summary = "OpenCV wrapper for Ruby".freeze
|
23
23
|
|
24
24
|
if s.respond_to? :specification_version then
|
data/test/helper.rb
CHANGED
@@ -14,6 +14,7 @@ class OpenCVTestCase < Test::Unit::TestCase
|
|
14
14
|
FILENAME_FRUITS = SAMPLE_DIR + 'fruits.jpg'
|
15
15
|
FILENAME_CONTOURS = File.expand_path(File.dirname(__FILE__)) + '/samples/contours.jpg'
|
16
16
|
FILENAME_CHESSBOARD = SAMPLE_DIR + 'chessboard.jpg'
|
17
|
+
FILENAME_LINES = SAMPLE_DIR + 'lines.jpg'
|
17
18
|
HAARCASCADE_FRONTALFACE_ALT = SAMPLE_DIR + 'haarcascade_frontalface_alt.xml.gz'
|
18
19
|
AVI_SAMPLE = SAMPLE_DIR + 'movie_sample.avi'
|
19
20
|
|
data/test/test_cvcontour.rb
CHANGED
@@ -146,5 +146,26 @@ class TestCvContour < OpenCVTestCase
|
|
146
146
|
assert_in_delta(31.01, contour.point_polygon_test(CvPoint.new(64, 64), 1), 0.01)
|
147
147
|
assert_in_delta(31.01, contour.point_polygon_test(CvPoint.new(64, 64), true), 0.01)
|
148
148
|
end
|
149
|
-
end
|
150
149
|
|
150
|
+
def test_match_shapes
|
151
|
+
img1 = CvMat.load(FILENAME_CONTOURS, CV_LOAD_IMAGE_GRAYSCALE).threshold(127, 255, CV_THRESH_BINARY)
|
152
|
+
img2 = CvMat.load(FILENAME_LINES, CV_LOAD_IMAGE_GRAYSCALE).threshold(127, 255, CV_THRESH_BINARY)
|
153
|
+
c1 = img1.find_contours(mode: CV_RETR_EXTERNAL)
|
154
|
+
c2 = img2.find_contours(mode: CV_RETR_EXTERNAL)
|
155
|
+
|
156
|
+
[CV_CONTOURS_MATCH_I1, CV_CONTOURS_MATCH_I2, CV_CONTOURS_MATCH_I3].each { |method|
|
157
|
+
assert_in_delta(0, c1.match_shapes(c1, method), 0.01)
|
158
|
+
assert_in_delta(0, c1.match_shapes(c1, method, nil), 0.01)
|
159
|
+
|
160
|
+
assert(c1.match_shapes(c2, method) > 0)
|
161
|
+
assert(c1.match_shapes(c2, method, nil) > 0)
|
162
|
+
}
|
163
|
+
|
164
|
+
assert_raise(TypeError) {
|
165
|
+
c1.match_shapes(DUMMY_OBJ, CV_CONTOURS_MATCH_I1)
|
166
|
+
}
|
167
|
+
assert_raise(TypeError) {
|
168
|
+
c1.match_shapes(c2, DUMMY_OBJ)
|
169
|
+
}
|
170
|
+
end
|
171
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-opencv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lsxi
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-07-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rdoc
|
@@ -326,7 +326,7 @@ files:
|
|
326
326
|
- yard_extension.rb
|
327
327
|
homepage: https://github.com/ruby-opencv/ruby-opencv/
|
328
328
|
licenses:
|
329
|
-
-
|
329
|
+
- BSD-3-Clause
|
330
330
|
metadata: {}
|
331
331
|
post_install_message:
|
332
332
|
rdoc_options:
|
@@ -346,7 +346,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
346
346
|
version: '0'
|
347
347
|
requirements: []
|
348
348
|
rubyforge_project:
|
349
|
-
rubygems_version: 2.6.
|
349
|
+
rubygems_version: 2.6.6
|
350
350
|
signing_key:
|
351
351
|
specification_version: 4
|
352
352
|
summary: OpenCV wrapper for Ruby
|