ruby-opencv 0.0.10 → 0.0.11.pre

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.
Files changed (106) hide show
  1. checksums.yaml +6 -14
  2. data/Manifest.txt +32 -8
  3. data/README.md +1 -1
  4. data/examples/alpha_blend.rb +2 -2
  5. data/examples/contours/bounding-box-detect-canny.rb +0 -0
  6. data/examples/contours/contour_retrieval_modes.rb +0 -0
  7. data/examples/convexhull.rb +0 -0
  8. data/examples/face_detect.rb +0 -0
  9. data/examples/facerec/create_csv.rb +43 -0
  10. data/examples/facerec/facerec_eigenfaces.rb +132 -0
  11. data/examples/facerec/facerec_fisherfaces.rb +131 -0
  12. data/examples/facerec/facerec_lbph.rb +116 -0
  13. data/examples/facerec/readme.md +111 -0
  14. data/examples/find_obj.rb +2 -2
  15. data/examples/houghcircle.rb +1 -1
  16. data/examples/{box.png → images/box.png} +0 -0
  17. data/examples/{box_in_scene.png → images/box_in_scene.png} +0 -0
  18. data/examples/{inpaint.png → images/inpaint.png} +0 -0
  19. data/examples/images/lena-256x256.jpg +0 -0
  20. data/examples/images/lena-eyes.jpg +0 -0
  21. data/examples/{lenna-rotated.jpg → images/lenna-rotated.jpg} +0 -0
  22. data/examples/{lenna.jpg → images/lenna.jpg} +0 -0
  23. data/examples/{stuff.jpg → images/stuff.jpg} +0 -0
  24. data/examples/{tiffany.jpg → images/tiffany.jpg} +0 -0
  25. data/examples/inpaint.rb +1 -1
  26. data/examples/match_kdtree.rb +2 -2
  27. data/examples/match_template.rb +26 -0
  28. data/examples/{matching_to_many_images.rb → matching_to_many_images/matching_to_many_images.rb} +3 -3
  29. data/examples/matching_to_many_images/query.png +0 -0
  30. data/examples/matching_to_many_images/train/1.png +0 -0
  31. data/examples/matching_to_many_images/train/2.png +0 -0
  32. data/examples/matching_to_many_images/train/3.png +0 -0
  33. data/examples/matching_to_many_images/train/trainImages.txt +0 -0
  34. data/examples/paint.rb +0 -0
  35. data/examples/snake.rb +0 -0
  36. data/ext/opencv/algorithm.cpp +286 -0
  37. data/ext/opencv/algorithm.h +38 -0
  38. data/ext/opencv/cvmat.cpp +205 -76
  39. data/ext/opencv/cvmat.h +8 -1
  40. data/ext/opencv/eigenfaces.cpp +67 -0
  41. data/ext/opencv/eigenfaces.h +30 -0
  42. data/ext/opencv/extconf.rb +0 -0
  43. data/ext/opencv/facerecognizer.cpp +174 -0
  44. data/ext/opencv/facerecognizer.h +46 -0
  45. data/ext/opencv/fisherfaces.cpp +67 -0
  46. data/ext/opencv/fisherfaces.h +30 -0
  47. data/ext/opencv/lbph.cpp +70 -0
  48. data/ext/opencv/lbph.h +30 -0
  49. data/ext/opencv/opencv.cpp +51 -1
  50. data/ext/opencv/opencv.h +6 -0
  51. data/lib/opencv.rb +0 -0
  52. data/lib/opencv/version.rb +1 -1
  53. data/ruby-opencv.gemspec +8 -7
  54. data/test/eigenfaces_save.xml +7524 -0
  55. data/test/fisherfaces_save.xml +7530 -0
  56. data/test/helper.rb +0 -0
  57. data/test/lbph_save.xml +4304 -0
  58. data/test/runner.rb +0 -0
  59. data/test/test_curve.rb +0 -0
  60. data/test/test_cvavgcomp.rb +0 -0
  61. data/test/test_cvbox2d.rb +0 -0
  62. data/test/test_cvcapture.rb +0 -0
  63. data/test/test_cvchain.rb +0 -0
  64. data/test/test_cvcircle32f.rb +0 -0
  65. data/test/test_cvconnectedcomp.rb +0 -0
  66. data/test/test_cvcontour.rb +0 -0
  67. data/test/test_cvcontourtree.rb +0 -0
  68. data/test/test_cverror.rb +0 -0
  69. data/test/test_cvfeaturetree.rb +0 -0
  70. data/test/test_cvfont.rb +0 -0
  71. data/test/test_cvhaarclassifiercascade.rb +0 -0
  72. data/test/test_cvhistogram.rb +0 -0
  73. data/test/test_cvhumoments.rb +0 -0
  74. data/test/test_cvline.rb +0 -0
  75. data/test/test_cvmat.rb +72 -16
  76. data/test/test_cvmat_drawing.rb +0 -0
  77. data/test/test_cvmat_dxt.rb +0 -0
  78. data/test/test_cvmat_imageprocessing.rb +72 -2
  79. data/test/test_cvmat_matching.rb +1 -1
  80. data/test/test_cvmoments.rb +0 -0
  81. data/test/test_cvpoint.rb +0 -0
  82. data/test/test_cvpoint2d32f.rb +0 -0
  83. data/test/test_cvpoint3d32f.rb +0 -0
  84. data/test/test_cvrect.rb +0 -0
  85. data/test/test_cvscalar.rb +0 -0
  86. data/test/test_cvseq.rb +0 -0
  87. data/test/test_cvsize.rb +0 -0
  88. data/test/test_cvsize2d32f.rb +0 -0
  89. data/test/test_cvslice.rb +0 -0
  90. data/test/test_cvsurfparams.rb +0 -0
  91. data/test/test_cvsurfpoint.rb +0 -0
  92. data/test/test_cvtermcriteria.rb +0 -0
  93. data/test/test_cvtwopoints.rb +0 -0
  94. data/test/test_cvvideowriter.rb +0 -0
  95. data/test/test_eigenfaces.rb +93 -0
  96. data/test/test_fisherfaces.rb +93 -0
  97. data/test/test_iplconvkernel.rb +0 -0
  98. data/test/test_iplimage.rb +0 -4
  99. data/test/test_lbph.rb +152 -0
  100. data/test/test_mouseevent.rb +0 -0
  101. data/test/test_opencv.rb +33 -4
  102. data/test/test_pointset.rb +7 -5
  103. data/test/test_preliminary.rb +0 -0
  104. data/test/test_trackbar.rb +0 -0
  105. data/test/test_window.rb +0 -0
  106. metadata +84 -56
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- mode: ruby; coding: utf-8-unix -*-
3
+ require 'test/unit'
4
+ require 'opencv'
5
+ require 'date'
6
+ require File.expand_path(File.dirname(__FILE__)) + '/helper'
7
+
8
+ include OpenCV
9
+
10
+ # Tests for OpenCV::FisherFaces
11
+ class TestFisherFaces < OpenCVTestCase
12
+ def setup
13
+ @fisherfaces = FisherFaces.new
14
+
15
+ @fisherfaces_trained = FisherFaces.new
16
+ @images = [CvMat.load(FILENAME_LENA256x256, CV_LOAD_IMAGE_GRAYSCALE)] * 2
17
+ @labels = [1, 2]
18
+ @fisherfaces_trained.train(@images, @labels)
19
+ end
20
+
21
+ def test_initialize
22
+ [FisherFaces.new, FisherFaces.new(1), FisherFaces.new(1, 99999)].each { |ff|
23
+ assert_equal(FisherFaces, ff.class)
24
+ }
25
+
26
+ assert_raise(TypeError) {
27
+ FisherFaces.new(DUMMY_OBJ)
28
+ }
29
+
30
+ assert_raise(TypeError) {
31
+ FisherFaces.new(1, DUMMY_OBJ)
32
+ }
33
+ end
34
+
35
+ def test_train
36
+ assert_nil(@fisherfaces.train(@images, @labels))
37
+
38
+ assert_raise(TypeError) {
39
+ @fisherfaces.train(DUMMY_OBJ, @labels)
40
+ }
41
+
42
+ assert_raise(TypeError) {
43
+ @fisherfaces.train(@images, DUMMY_OBJ)
44
+ }
45
+ end
46
+
47
+ def test_predict
48
+ predicted_label, predicted_confidence = @fisherfaces_trained.predict(@images[0])
49
+ assert_equal(@labels[0], predicted_label)
50
+ assert_in_delta(0.0, predicted_confidence, 0.01)
51
+
52
+ assert_raise(TypeError) {
53
+ @fisherfaces_trained.predict(DUMMY_OBJ)
54
+ }
55
+ end
56
+
57
+ def test_save
58
+ filename = "fisherfaces_save-#{DateTime.now.strftime('%Y%m%d%H%M%S')}.xml"
59
+ begin
60
+ @fisherfaces_trained.save(filename)
61
+ assert(File.exist? filename)
62
+ ensure
63
+ File.delete filename
64
+ end
65
+ assert_raise(TypeError) {
66
+ @fisherfaces_trained.save(DUMMY_OBJ)
67
+ }
68
+ end
69
+
70
+ def test_load
71
+ assert_nothing_raised {
72
+ @fisherfaces.load('fisherfaces_save.xml')
73
+ }
74
+ assert_raise(TypeError) {
75
+ @fisherfaces.load(DUMMY_OBJ)
76
+ }
77
+ end
78
+
79
+ def test_name
80
+ assert_equal('FaceRecognizer.Fisherfaces', @fisherfaces.name)
81
+ end
82
+
83
+ def test_get_mat
84
+ mat = @fisherfaces_trained.get_mat('eigenvalues')
85
+ assert_not_nil(mat)
86
+ assert_equal(CvMat, mat.class)
87
+
88
+ assert_raise(TypeError) {
89
+ @fisherfaces_trained.get_mat(DUMMY_OBJ)
90
+ }
91
+ end
92
+ end
93
+
File without changes
@@ -80,28 +80,24 @@ class TestIplImage < OpenCVTestCase
80
80
  img4 = IplImage.decode(data, CV_LOAD_IMAGE_COLOR)
81
81
  img5 = IplImage.decode(data_ary, CV_LOAD_IMAGE_COLOR)
82
82
  img6 = IplImage.decode(data_mat, CV_LOAD_IMAGE_COLOR)
83
- expected_hash = hash_img(expected)
84
83
 
85
84
  [img1, img2, img3, img4, img5, img6].each { |img|
86
85
  assert_equal(IplImage, img.class)
87
86
  assert_equal(expected.rows, img.rows)
88
87
  assert_equal(expected.cols, img.cols)
89
88
  assert_equal(expected.channel, img.channel)
90
- assert_equal(expected_hash, hash_img(img))
91
89
  }
92
90
 
93
91
  expected_c1 = IplImage.load(FILENAME_CAT, CV_LOAD_IMAGE_GRAYSCALE)
94
92
  img1c1 = IplImage.decode(data, CV_LOAD_IMAGE_GRAYSCALE)
95
93
  img2c1 = IplImage.decode(data_ary, CV_LOAD_IMAGE_GRAYSCALE)
96
94
  img3c1 = IplImage.decode(data_mat, CV_LOAD_IMAGE_GRAYSCALE)
97
- expected_hash_c1 = hash_img(expected_c1)
98
95
 
99
96
  [img1c1, img2c1, img3c1].each { |img|
100
97
  assert_equal(IplImage, img.class)
101
98
  assert_equal(expected_c1.rows, img.rows)
102
99
  assert_equal(expected_c1.cols, img.cols)
103
100
  assert_equal(expected_c1.channel, img.channel)
104
- assert_equal(expected_hash_c1, hash_img(img))
105
101
  }
106
102
 
107
103
  assert_raise(TypeError) {
data/test/test_lbph.rb ADDED
@@ -0,0 +1,152 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- mode: ruby; coding: utf-8-unix -*-
3
+ require 'test/unit'
4
+ require 'opencv'
5
+ require 'date'
6
+ require File.expand_path(File.dirname(__FILE__)) + '/helper'
7
+
8
+ include OpenCV
9
+
10
+ # Tests for OpenCV::LBPH
11
+ class TestLBPH < OpenCVTestCase
12
+ def setup
13
+ @lbph = LBPH.new
14
+
15
+ @lbph_trained = LBPH.new
16
+ @images = [CvMat.load(FILENAME_LENA256x256, CV_LOAD_IMAGE_GRAYSCALE)] * 2
17
+ @labels = [1, 2]
18
+ @lbph_trained.train(@images, @labels)
19
+ end
20
+
21
+ def test_initialize
22
+ [LBPH.new, LBPH.new(1), LBPH.new(1, 2, 3, 4, 5.0)].each { |lbph|
23
+ assert_equal(LBPH, lbph.class)
24
+ }
25
+
26
+ assert_raise(TypeError) {
27
+ LBPH.new(DUMMY_OBJ)
28
+ }
29
+ assert_raise(TypeError) {
30
+ LBPH.new(1, DUMMY_OBJ)
31
+ }
32
+ assert_raise(TypeError) {
33
+ LBPH.new(1, 2, DUMMY_OBJ)
34
+ }
35
+ assert_raise(TypeError) {
36
+ LBPH.new(1, 2, 3, DUMMY_OBJ)
37
+ }
38
+ assert_raise(TypeError) {
39
+ LBPH.new(1, 2, 3, 4, DUMMY_OBJ)
40
+ }
41
+ end
42
+
43
+ def test_train
44
+ assert_nil(@lbph.train(@images, @labels))
45
+
46
+ assert_raise(TypeError) {
47
+ @lbph.train(DUMMY_OBJ, @labels)
48
+ }
49
+
50
+ assert_raise(TypeError) {
51
+ @lbph.train(@images, DUMMY_OBJ)
52
+ }
53
+ end
54
+
55
+ def test_predict
56
+ predicted_label, predicted_confidence = @lbph_trained.predict(@images[0])
57
+ assert_equal(@labels[0], predicted_label)
58
+ assert_in_delta(0.0, predicted_confidence, 0.01)
59
+
60
+ assert_raise(TypeError) {
61
+ @lbph_trained.predict(DUMMY_OBJ)
62
+ }
63
+ end
64
+
65
+ def test_save
66
+ filename = "lbph_save-#{DateTime.now.strftime('%Y%m%d%H%M%S')}.xml"
67
+ begin
68
+ @lbph_trained.save(filename)
69
+ assert(File.exist? filename)
70
+ ensure
71
+ File.delete filename
72
+ end
73
+ assert_raise(TypeError) {
74
+ @lbph_trained.save(DUMMY_OBJ)
75
+ }
76
+ end
77
+
78
+ def test_load
79
+ assert_nothing_raised {
80
+ @lbph.load('lbph_save.xml')
81
+ }
82
+ assert_raise(TypeError) {
83
+ @lbph.load(DUMMY_OBJ)
84
+ }
85
+ end
86
+
87
+ def test_name
88
+ assert_equal('FaceRecognizer.LBPH', @lbph.name)
89
+ end
90
+
91
+ def test_get_int
92
+ assert_equal(1, @lbph.get_int('radius'))
93
+ assert_equal(8, @lbph.get_int('neighbors'))
94
+ assert_equal(8, @lbph.get_int('grid_x'))
95
+ assert_equal(8, @lbph.get_int('grid_y'))
96
+
97
+ assert_raise(TypeError) {
98
+ @lbph.get_int(DUMMY_OBJ)
99
+ }
100
+ end
101
+
102
+ def test_get_double
103
+ assert_equal(Float::MAX, @lbph.get_double('threshold'))
104
+
105
+ assert_raise(TypeError) {
106
+ @lbph.get_double(DUMMY_OBJ)
107
+ }
108
+ end
109
+
110
+ def test_get_matvector
111
+ histgrams = @lbph_trained.get_matvector('histograms')
112
+ assert_equal(Array, histgrams.class)
113
+ assert_equal(2, histgrams.size)
114
+ assert_equal(CvMat, histgrams[0].class)
115
+
116
+ assert_raise(TypeError) {
117
+ @lbph.get_matvector(DUMMY_OBJ)
118
+ }
119
+ end
120
+
121
+ def test_set_int
122
+ @lbph.set_int('radius', 2)
123
+ @lbph.set_int('neighbors', 3)
124
+ @lbph.set_int('grid_x', 4)
125
+ @lbph.set_int('grid_y', 5)
126
+
127
+ assert_equal(2, @lbph.get_int('radius'))
128
+ assert_equal(3, @lbph.get_int('neighbors'))
129
+ assert_equal(4, @lbph.get_int('grid_x'))
130
+ assert_equal(5, @lbph.get_int('grid_y'))
131
+
132
+ assert_raise(TypeError) {
133
+ @lbph.set_int(DUMMY_OBJ, 1)
134
+ }
135
+ assert_raise(TypeError) {
136
+ @lbph.set_int('radius', DUMMY_OBJ)
137
+ }
138
+ end
139
+
140
+ def test_set_double
141
+ @lbph.set_double('threshold', 1.0)
142
+ assert_in_delta(1.0, @lbph.get_double('threshold'), 0.001)
143
+
144
+ assert_raise(TypeError) {
145
+ @lbph.set_double(DUMMY_OBJ, 1.0)
146
+ }
147
+ assert_raise(TypeError) {
148
+ @lbph.set_double('threshold', DUMMY_OBJ)
149
+ }
150
+ end
151
+ end
152
+
File without changes
data/test/test_opencv.rb CHANGED
@@ -9,15 +9,15 @@ include OpenCV
9
9
  class TestOpenCV < OpenCVTestCase
10
10
  def test_constants
11
11
  # OpenCV version
12
- assert_equal('2.4.6.1', CV_VERSION)
12
+ assert_equal('2.4.7', CV_VERSION)
13
13
  assert_equal(2, CV_MAJOR_VERSION)
14
14
  assert_equal(4, CV_MINOR_VERSION)
15
- assert_equal(6, CV_SUBMINOR_VERSION)
15
+ assert_equal(7, CV_SUBMINOR_VERSION)
16
16
 
17
17
  assert_equal(2, CV_VERSION_EPOCH)
18
18
  assert_equal(4, CV_VERSION_MAJOR)
19
- assert_equal(6, CV_VERSION_MINOR)
20
- assert_equal(1, CV_VERSION_REVISION)
19
+ assert_equal(7, CV_VERSION_MINOR)
20
+ assert_equal(0, CV_VERSION_REVISION)
21
21
 
22
22
  # Depths
23
23
  assert_equal(0, CV_8U)
@@ -28,6 +28,35 @@ class TestOpenCV < OpenCVTestCase
28
28
  assert_equal(5, CV_32F)
29
29
  assert_equal(6, CV_64F)
30
30
 
31
+ assert_equal(0, CV_8UC1)
32
+ assert_equal(8, CV_8UC2)
33
+ assert_equal(16, CV_8UC3)
34
+ assert_equal(24, CV_8UC4)
35
+ assert_equal(1, CV_8SC1)
36
+ assert_equal(9, CV_8SC2)
37
+ assert_equal(17, CV_8SC3)
38
+ assert_equal(25, CV_8SC4)
39
+ assert_equal(2, CV_16UC1)
40
+ assert_equal(10, CV_16UC2)
41
+ assert_equal(18, CV_16UC3)
42
+ assert_equal(26, CV_16UC4)
43
+ assert_equal(3, CV_16SC1)
44
+ assert_equal(11, CV_16SC2)
45
+ assert_equal(19, CV_16SC3)
46
+ assert_equal(27, CV_16SC4)
47
+ assert_equal(4, CV_32SC1)
48
+ assert_equal(12, CV_32SC2)
49
+ assert_equal(20, CV_32SC3)
50
+ assert_equal(28, CV_32SC4)
51
+ assert_equal(5, CV_32FC1)
52
+ assert_equal(13, CV_32FC2)
53
+ assert_equal(21, CV_32FC3)
54
+ assert_equal(29, CV_32FC4)
55
+ assert_equal(6, CV_64FC1)
56
+ assert_equal(14, CV_64FC2)
57
+ assert_equal(22, CV_64FC3)
58
+ assert_equal(30, CV_64FC4)
59
+
31
60
  # Load image flags
32
61
  assert_equal(-1, CV_LOAD_IMAGE_UNCHANGED)
33
62
  assert_equal(0, CV_LOAD_IMAGE_GRAYSCALE)
@@ -38,11 +38,13 @@ class TestPointSet < OpenCVTestCase
38
38
  assert_equal(64, center.y.to_i)
39
39
 
40
40
  size = box.size
41
- assert_in_delta(63.116, size.width, 0.001)
42
- assert_in_delta(63.116, size.height, 0.001)
43
- assert_in_delta(180, box.angle, 0.001)
41
+ assert_in_delta(63, size.width, 1.0)
42
+ assert_in_delta(63, size.height, 1.0)
44
43
 
45
- assert_raise(CvStsBadArg) {
44
+ angle = [box.angle, 180 - box.angle].min
45
+ assert_in_delta(0, angle, 0.1)
46
+
47
+ assert_raise(CvStsBadSize) {
46
48
  @contour2.fit_ellipse2
47
49
  }
48
50
  end
@@ -102,7 +104,7 @@ class TestPointSet < OpenCVTestCase
102
104
  size = box.size
103
105
  assert_in_delta(63.356, size.width, 0.001)
104
106
  assert_in_delta(63.356, size.height, 0.001)
105
- assert_in_delta(-8.130, box.angle, 0.001)
107
+ assert_in_delta(-81.30, box.angle, 1.0)
106
108
 
107
109
  flunk('FIXME: Currently PointSet#min_area_rect2 causes segmentation fault when "self" is invalid.')
108
110
  assert_raise(CvStsBadSize) {
File without changes
File without changes
data/test/test_window.rb CHANGED
File without changes
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.10
4
+ version: 0.0.11.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - lsxi
@@ -10,62 +10,62 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-08-04 00:00:00.000000000 Z
13
+ date: 2013-12-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rdoc
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ~>
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
21
  version: '4.0'
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ~>
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
28
  version: '4.0'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: rake-compiler
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ! '>='
33
+ - - ">="
34
34
  - !ruby/object:Gem::Version
35
35
  version: '0'
36
36
  type: :development
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ! '>='
40
+ - - ">="
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: hoe-gemspec
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ! '>='
47
+ - - ">="
48
48
  - !ruby/object:Gem::Version
49
49
  version: '0'
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - ! '>='
54
+ - - ">="
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: hoe
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - ~>
61
+ - - "~>"
62
62
  - !ruby/object:Gem::Version
63
63
  version: '3.7'
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - ~>
68
+ - - "~>"
69
69
  - !ruby/object:Gem::Version
70
70
  version: '3.7'
71
71
  description: ruby-opencv is a wrapper of OpenCV for Ruby. It helps you to write computer
@@ -83,9 +83,10 @@ extra_rdoc_files:
83
83
  - License.txt
84
84
  - Manifest.txt
85
85
  - README.md
86
+ - examples/facerec/readme.md
86
87
  - examples/matching_to_many_images/train/trainImages.txt
87
88
  files:
88
- - .gitignore
89
+ - ".gitignore"
89
90
  - DEVELOPERS_NOTE.md
90
91
  - Gemfile
91
92
  - History.txt
@@ -95,8 +96,6 @@ files:
95
96
  - Rakefile
96
97
  - config.yml
97
98
  - examples/alpha_blend.rb
98
- - examples/box.png
99
- - examples/box_in_scene.png
100
99
  - examples/contours/bitmap-contours-with-labels.png
101
100
  - examples/contours/bitmap-contours.png
102
101
  - examples/contours/bounding-box-detect-canny.rb
@@ -104,14 +103,26 @@ files:
104
103
  - examples/contours/rotated-boxes.jpg
105
104
  - examples/convexhull.rb
106
105
  - examples/face_detect.rb
106
+ - examples/facerec/create_csv.rb
107
+ - examples/facerec/facerec_eigenfaces.rb
108
+ - examples/facerec/facerec_fisherfaces.rb
109
+ - examples/facerec/facerec_lbph.rb
110
+ - examples/facerec/readme.md
107
111
  - examples/find_obj.rb
108
112
  - examples/houghcircle.rb
109
- - examples/inpaint.png
113
+ - examples/images/box.png
114
+ - examples/images/box_in_scene.png
115
+ - examples/images/inpaint.png
116
+ - examples/images/lena-256x256.jpg
117
+ - examples/images/lena-eyes.jpg
118
+ - examples/images/lenna-rotated.jpg
119
+ - examples/images/lenna.jpg
120
+ - examples/images/stuff.jpg
121
+ - examples/images/tiffany.jpg
110
122
  - examples/inpaint.rb
111
- - examples/lenna-rotated.jpg
112
- - examples/lenna.jpg
113
123
  - examples/match_kdtree.rb
114
- - examples/matching_to_many_images.rb
124
+ - examples/match_template.rb
125
+ - examples/matching_to_many_images/matching_to_many_images.rb
115
126
  - examples/matching_to_many_images/query.png
116
127
  - examples/matching_to_many_images/train/1.png
117
128
  - examples/matching_to_many_images/train/2.png
@@ -119,8 +130,8 @@ files:
119
130
  - examples/matching_to_many_images/train/trainImages.txt
120
131
  - examples/paint.rb
121
132
  - examples/snake.rb
122
- - examples/stuff.jpg
123
- - examples/tiffany.jpg
133
+ - ext/opencv/algorithm.cpp
134
+ - ext/opencv/algorithm.h
124
135
  - ext/opencv/curve.cpp
125
136
  - ext/opencv/curve.h
126
137
  - ext/opencv/cvavgcomp.cpp
@@ -197,13 +208,21 @@ files:
197
208
  - ext/opencv/cvutils.h
198
209
  - ext/opencv/cvvideowriter.cpp
199
210
  - ext/opencv/cvvideowriter.h
211
+ - ext/opencv/eigenfaces.cpp
212
+ - ext/opencv/eigenfaces.h
200
213
  - ext/opencv/extconf.rb
214
+ - ext/opencv/facerecognizer.cpp
215
+ - ext/opencv/facerecognizer.h
216
+ - ext/opencv/fisherfaces.cpp
217
+ - ext/opencv/fisherfaces.h
201
218
  - ext/opencv/gui.cpp
202
219
  - ext/opencv/gui.h
203
220
  - ext/opencv/iplconvkernel.cpp
204
221
  - ext/opencv/iplconvkernel.h
205
222
  - ext/opencv/iplimage.cpp
206
223
  - ext/opencv/iplimage.h
224
+ - ext/opencv/lbph.cpp
225
+ - ext/opencv/lbph.h
207
226
  - ext/opencv/mouseevent.cpp
208
227
  - ext/opencv/mouseevent.h
209
228
  - ext/opencv/opencv.cpp
@@ -222,7 +241,10 @@ files:
222
241
  - lib/opencv/psyched_yaml.rb
223
242
  - lib/opencv/version.rb
224
243
  - ruby-opencv.gemspec
244
+ - test/eigenfaces_save.xml
245
+ - test/fisherfaces_save.xml
225
246
  - test/helper.rb
247
+ - test/lbph_save.xml
226
248
  - test/runner.rb
227
249
  - test/samples/airplane.jpg
228
250
  - test/samples/baboon.jpg
@@ -304,8 +326,11 @@ files:
304
326
  - test/test_cvtermcriteria.rb
305
327
  - test/test_cvtwopoints.rb
306
328
  - test/test_cvvideowriter.rb
329
+ - test/test_eigenfaces.rb
330
+ - test/test_fisherfaces.rb
307
331
  - test/test_iplconvkernel.rb
308
332
  - test/test_iplimage.rb
333
+ - test/test_lbph.rb
309
334
  - test/test_mouseevent.rb
310
335
  - test/test_opencv.rb
311
336
  - test/test_pointset.rb
@@ -318,68 +343,71 @@ licenses:
318
343
  metadata: {}
319
344
  post_install_message:
320
345
  rdoc_options:
321
- - --main
346
+ - "--main"
322
347
  - README.md
323
348
  require_paths:
324
349
  - lib
325
350
  required_ruby_version: !ruby/object:Gem::Requirement
326
351
  requirements:
327
- - - ! '>='
352
+ - - ">="
328
353
  - !ruby/object:Gem::Version
329
354
  version: '0'
330
355
  required_rubygems_version: !ruby/object:Gem::Requirement
331
356
  requirements:
332
- - - ! '>='
357
+ - - ">"
333
358
  - !ruby/object:Gem::Version
334
- version: '0'
359
+ version: 1.3.1
335
360
  requirements: []
336
361
  rubyforge_project: ruby-opencv
337
- rubygems_version: 2.0.6
362
+ rubygems_version: 2.1.11
338
363
  signing_key:
339
364
  specification_version: 4
340
365
  summary: OpenCV wrapper for Ruby
341
366
  test_files:
342
- - test/test_curve.rb
343
- - test/test_cvavgcomp.rb
344
- - test/test_cvbox2d.rb
345
- - test/test_cvcapture.rb
346
- - test/test_cvchain.rb
347
- - test/test_cvcircle32f.rb
348
- - test/test_cvconnectedcomp.rb
349
367
  - test/test_cvcontour.rb
368
+ - test/test_eigenfaces.rb
369
+ - test/test_cvmoments.rb
370
+ - test/test_cvseq.rb
350
371
  - test/test_cvcontourtree.rb
351
- - test/test_cverror.rb
352
- - test/test_cvfeaturetree.rb
372
+ - test/test_cvbox2d.rb
373
+ - test/test_iplimage.rb
374
+ - test/test_cvvideowriter.rb
375
+ - test/test_cvline.rb
376
+ - test/test_cvhumoments.rb
353
377
  - test/test_cvfont.rb
354
- - test/test_cvhaarclassifiercascade.rb
378
+ - test/test_cvconnectedcomp.rb
355
379
  - test/test_cvhistogram.rb
356
- - test/test_cvhumoments.rb
357
- - test/test_cvline.rb
358
- - test/test_cvmat.rb
359
- - test/test_cvmat_drawing.rb
360
- - test/test_cvmat_dxt.rb
380
+ - test/test_trackbar.rb
361
381
  - test/test_cvmat_imageprocessing.rb
362
- - test/test_cvmat_matching.rb
363
- - test/test_cvmoments.rb
364
- - test/test_cvpoint.rb
365
- - test/test_cvpoint2d32f.rb
366
- - test/test_cvpoint3d32f.rb
382
+ - test/test_cvhaarclassifiercascade.rb
383
+ - test/test_cvcircle32f.rb
384
+ - test/test_cvcapture.rb
385
+ - test/test_cvmat_dxt.rb
367
386
  - test/test_cvrect.rb
368
- - test/test_cvscalar.rb
369
- - test/test_cvseq.rb
370
- - test/test_cvsize.rb
371
- - test/test_cvsize2d32f.rb
372
- - test/test_cvslice.rb
373
- - test/test_cvsurfparams.rb
387
+ - test/test_iplconvkernel.rb
374
388
  - test/test_cvsurfpoint.rb
389
+ - test/test_cvavgcomp.rb
390
+ - test/test_cvscalar.rb
391
+ - test/test_pointset.rb
392
+ - test/test_curve.rb
375
393
  - test/test_cvtermcriteria.rb
376
394
  - test/test_cvtwopoints.rb
377
- - test/test_cvvideowriter.rb
378
- - test/test_iplconvkernel.rb
379
- - test/test_iplimage.rb
395
+ - test/test_cvsurfparams.rb
396
+ - test/test_cvpoint2d32f.rb
397
+ - test/test_cvpoint3d32f.rb
398
+ - test/test_cvfeaturetree.rb
380
399
  - test/test_mouseevent.rb
381
- - test/test_opencv.rb
382
- - test/test_pointset.rb
400
+ - test/test_cvchain.rb
401
+ - test/test_cvmat.rb
402
+ - test/test_fisherfaces.rb
403
+ - test/test_cvmat_matching.rb
404
+ - test/test_cverror.rb
405
+ - test/test_cvpoint.rb
406
+ - test/test_cvsize2d32f.rb
383
407
  - test/test_preliminary.rb
384
- - test/test_trackbar.rb
408
+ - test/test_cvmat_drawing.rb
409
+ - test/test_lbph.rb
410
+ - test/test_cvsize.rb
385
411
  - test/test_window.rb
412
+ - test/test_cvslice.rb
413
+ - test/test_opencv.rb