ruby-opencv 0.0.16 → 0.0.17
Sign up to get free protection for your applications and to get access to all the features.
- 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
|