ropencv 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/file_storage.rb +26 -0
- data/examples/find_homography.rb +18 -0
- data/ext/helper.rb +2 -2
- data/ext/opencv.txt +174 -5
- data/lib/ropencv/ropencv_ruby.rb +153 -3
- data/ropencv.gemspec +3 -3
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd8ab218b838274f85686f33fbac6b91abd46097
|
4
|
+
data.tar.gz: 7eb519e53bb782f17665dc6f4fc3a90c558cb2f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5cf14edc726ab2dd119bcc804e81f3bafb43538083394afa74d75b7fd7015a988cf08ae1218e995d961416209875806c313a7e66fbd4f6999c637501c57ec046
|
7
|
+
data.tar.gz: f11e563f715217ad25fb7576107f7af949db69cdef3d7b95260eaefe1c123f8ae0bffd26fe4c49aff62028ff448db7e2c9a84b4d5153fbdd8b88a99a3d6fd144
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'ropencv'
|
2
|
+
require 'pp'
|
3
|
+
|
4
|
+
include OpenCV
|
5
|
+
|
6
|
+
#writing
|
7
|
+
fs = cv::FileStorage.new("test.yml",cv::FileStorage::WRITE)
|
8
|
+
fs << "mat" << cv::Mat.ones(10,10,cv::CV_32FC1)
|
9
|
+
fs << "int" << 10
|
10
|
+
fs << "seq" << "[" << 10 << 2 << "]"
|
11
|
+
fs << "map1" << "{" <<"element1" << 2 << "}"
|
12
|
+
fs.release
|
13
|
+
|
14
|
+
# reading
|
15
|
+
fs = cv::FileStorage.new("test.yml",cv::FileStorage::READ)
|
16
|
+
fs.each do |e|
|
17
|
+
puts "got node #{e.name}"
|
18
|
+
end
|
19
|
+
|
20
|
+
pp "seq: #{fs["seq"].to_array_of_int}"
|
21
|
+
pp "mat: #{fs["mat"].to_mat}"
|
22
|
+
pp "int: #{fs["int"].to_int}"
|
23
|
+
pp "map.element1: #{fs["map1"]["element1"].to_int}"
|
24
|
+
pp "map.element1: #{fs.map1.element1.to_int}"
|
25
|
+
|
26
|
+
fs.release
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'ropencv'
|
2
|
+
require 'pp'
|
3
|
+
|
4
|
+
include OpenCV
|
5
|
+
|
6
|
+
points1 = std::Vector.new(cv::Point2f)
|
7
|
+
points2 = std::Vector.new(cv::Point2f)
|
8
|
+
|
9
|
+
points1.push_back(cv::Point2f.new(1,1))
|
10
|
+
points1.push_back(cv::Point2f.new(3,1))
|
11
|
+
points1.push_back(cv::Point2f.new(4,2))
|
12
|
+
points1.push_back(cv::Point2f.new(10,1))
|
13
|
+
|
14
|
+
points1.each do |pt|
|
15
|
+
points2.push_back(pt*0.2)
|
16
|
+
end
|
17
|
+
|
18
|
+
pp cv::find_homography(points1,points2)
|
data/ext/helper.rb
CHANGED
@@ -94,7 +94,7 @@ def find_opencv
|
|
94
94
|
opencv_version = out.read.chomp
|
95
95
|
|
96
96
|
##add opencv headers
|
97
|
-
headers = if opencv_version >= "2.4.4" && opencv_version
|
97
|
+
headers = if opencv_version >= "2.4.4" && opencv_version < "2.4.7.0"
|
98
98
|
["opencv2/core/core_c.h", "opencv2/core/types_c.h",
|
99
99
|
"opencv2/core/core.hpp", "opencv2/flann/miniflann.hpp",
|
100
100
|
"opencv2/imgproc/imgproc_c.h", "opencv2/imgproc/types_c.h",
|
@@ -106,7 +106,7 @@ def find_opencv
|
|
106
106
|
"opencv2/contrib/contrib.hpp", "opencv2/nonfree/nonfree.hpp",
|
107
107
|
"opencv2/nonfree/features2d.hpp"]
|
108
108
|
elsif opencv_version >= "2.4.9"
|
109
|
-
["opencv2/core.hpp", "opencv2/core/types.hpp",
|
109
|
+
["opencv2/core.hpp", "opencv2/core/types.hpp","opencv2/core/persistence.hpp",
|
110
110
|
"opencv2/core/utility.hpp", "opencv2/core/base.hpp",
|
111
111
|
"opencv2/contrib.hpp", "opencv2/calib3d.hpp",
|
112
112
|
"opencv2/features2d.hpp", "opencv2/flann.hpp",
|
data/ext/opencv.txt
CHANGED
@@ -122,8 +122,12 @@ cv.Point.cross double
|
|
122
122
|
Point pt
|
123
123
|
cv.Point.inside bool
|
124
124
|
Rect rect
|
125
|
-
cv.Point.operator+
|
125
|
+
cv.Point.operator+ Point
|
126
126
|
Point pt
|
127
|
+
cv.Point.operator- Point
|
128
|
+
Point pt
|
129
|
+
cv.Point.operator* Point
|
130
|
+
int val
|
127
131
|
cv.Point.operator== bool
|
128
132
|
Point pt
|
129
133
|
cv.Point.operator!= bool
|
@@ -143,8 +147,12 @@ cv.Point2f.dot double
|
|
143
147
|
Point2f pt
|
144
148
|
cv.Point2f.cross double
|
145
149
|
Point2f pt
|
146
|
-
cv.Point2f.operator+
|
150
|
+
cv.Point2f.operator+ Point2f
|
147
151
|
Point2f pt
|
152
|
+
cv.Point2f.operator- Point2f
|
153
|
+
Point2f pt
|
154
|
+
cv.Point2f.operator* Point2f
|
155
|
+
float val
|
148
156
|
cv.Point2f.operator== bool
|
149
157
|
Point2f pt
|
150
158
|
cv.Point2f.operator!= bool
|
@@ -156,8 +164,12 @@ cv.Point2d.Point2d
|
|
156
164
|
cv.Point2d.Point2d
|
157
165
|
double x
|
158
166
|
double y
|
159
|
-
cv.Point2d.operator+
|
167
|
+
cv.Point2d.operator+ Point2d
|
168
|
+
Point2d pt
|
169
|
+
cv.Point2d.operator- Point2d
|
160
170
|
Point2d pt
|
171
|
+
cv.Point2d.operator* Point2d
|
172
|
+
double val
|
161
173
|
cv.Point2d.Point2d
|
162
174
|
Point2d pt
|
163
175
|
cv.Point2d.dot double
|
@@ -187,8 +199,12 @@ cv.Point3f.ddot double
|
|
187
199
|
Point3f pt
|
188
200
|
cv.Point3f.cross Point3f
|
189
201
|
Point3f pt
|
190
|
-
cv.Point3f.operator+
|
202
|
+
cv.Point3f.operator+ Point3f
|
203
|
+
Point3f pt
|
204
|
+
cv.Point3f.operator- Point3f
|
191
205
|
Point3f pt
|
206
|
+
cv.Point3f.operator* Point3f
|
207
|
+
float val
|
192
208
|
cv.Point3f.operator== bool
|
193
209
|
Point3f pt
|
194
210
|
cv.Point3f.operator!= bool
|
@@ -210,8 +226,12 @@ cv.Point3d.ddot double
|
|
210
226
|
Point3d pt
|
211
227
|
cv.Point3d.cross Point3d
|
212
228
|
Point3d pt
|
213
|
-
cv.Point3d.operator+
|
229
|
+
cv.Point3d.operator+ Point3d
|
230
|
+
Point3d pt
|
231
|
+
cv.Point3d.operator- Point3d
|
214
232
|
Point3d pt
|
233
|
+
cv.Point3d.operator* Point3d
|
234
|
+
double val
|
215
235
|
cv.Point3d.operator== bool
|
216
236
|
Point3d pt
|
217
237
|
cv.Point3d.operator!= bool
|
@@ -449,4 +469,153 @@ cv.RNG.fill void
|
|
449
469
|
bool saturateRange false
|
450
470
|
cv.RNG.gaussian double
|
451
471
|
double sigma
|
472
|
+
class cv.FileStorage
|
473
|
+
cv.write void =write_scalar_int
|
474
|
+
FileStorage fs /IO
|
475
|
+
int val
|
476
|
+
cv.write void =write_scalar_float
|
477
|
+
FileStorage fs /IO
|
478
|
+
float val
|
479
|
+
cv.write void =write_scalar_double
|
480
|
+
FileStorage fs /IO
|
481
|
+
double val
|
482
|
+
cv.write void =write_scalar_string
|
483
|
+
FileStorage fs /IO
|
484
|
+
String val
|
485
|
+
cv.write void =write_int
|
486
|
+
FileStorage fs /IO
|
487
|
+
String name
|
488
|
+
int val
|
489
|
+
cv.write void =write_float
|
490
|
+
FileStorage fs /IO
|
491
|
+
String name
|
492
|
+
float val
|
493
|
+
cv.write void =write_double
|
494
|
+
FileStorage fs /IO
|
495
|
+
String name
|
496
|
+
double val
|
497
|
+
cv.write void =write_string
|
498
|
+
FileStorage fs /IO
|
499
|
+
String name
|
500
|
+
String val
|
501
|
+
cv.write void =write_mat
|
502
|
+
FileStorage fs /IO
|
503
|
+
String name
|
504
|
+
Mat val
|
505
|
+
cv.write void =write_point
|
506
|
+
FileStorage fs /IO
|
507
|
+
String name
|
508
|
+
Point val
|
509
|
+
cv.write void =write_point2f
|
510
|
+
FileStorage fs /IO
|
511
|
+
String name
|
512
|
+
Point2f val
|
513
|
+
cv.write void =write_point3f
|
514
|
+
FileStorage fs /IO
|
515
|
+
String name
|
516
|
+
Point3f val
|
517
|
+
cv.write void =write_point2d
|
518
|
+
FileStorage fs /IO
|
519
|
+
String name
|
520
|
+
Point2d val
|
521
|
+
cv.write void =write_point3d
|
522
|
+
FileStorage fs /IO
|
523
|
+
String name
|
524
|
+
Point3d val
|
525
|
+
cv.write void =write_rect
|
526
|
+
FileStorage fs /IO
|
527
|
+
String name
|
528
|
+
Rect val
|
529
|
+
cv.write void =write_range
|
530
|
+
FileStorage fs /IO
|
531
|
+
String name
|
532
|
+
Range val
|
533
|
+
cv.write void =write_scalar
|
534
|
+
FileStorage fs /IO
|
535
|
+
String name
|
536
|
+
Scalar val
|
537
|
+
cv.write void =write_size
|
538
|
+
FileStorage fs /IO
|
539
|
+
String name
|
540
|
+
Size val
|
541
|
+
cv.write void =write_vec2f
|
542
|
+
FileStorage fs /IO
|
543
|
+
String name
|
544
|
+
Vec2f val
|
545
|
+
cv.write void =write_vec3f
|
546
|
+
FileStorage fs /IO
|
547
|
+
String name
|
548
|
+
Vec3f val
|
549
|
+
cv.write void =write_vec2d
|
550
|
+
FileStorage fs /IO
|
551
|
+
String name
|
552
|
+
Vec2d val
|
553
|
+
cv.write void =write_vec3d
|
554
|
+
FileStorage fs /IO
|
555
|
+
String name
|
556
|
+
Vec3d val
|
557
|
+
cv.read void =read_int
|
558
|
+
FileNode fn /IO
|
559
|
+
int val /O
|
560
|
+
int default_val
|
561
|
+
cv.read void =read_float
|
562
|
+
FileNode fn /IO
|
563
|
+
float val /O
|
564
|
+
float default_val
|
565
|
+
cv.read void =read_double
|
566
|
+
FileNode fn /IO
|
567
|
+
double val /O
|
568
|
+
double default_val
|
569
|
+
cv.read void =read_string
|
570
|
+
FileNode fn /IO
|
571
|
+
String val /O
|
572
|
+
String default_val
|
573
|
+
cv.read void =read_mat
|
574
|
+
FileNode fn /IO
|
575
|
+
Mat val /O
|
576
|
+
Mat default_val
|
577
|
+
cv.FileStorage.operator<< FileStorage =write_int /O
|
578
|
+
int val
|
579
|
+
cv.FileStorage.operator<< FileStorage =write_float /O
|
580
|
+
float val
|
581
|
+
cv.FileStorage.operator<< FileStorage =write_double /O
|
582
|
+
double val
|
583
|
+
cv.FileStorage.operator<< FileStorage =write_string /O
|
584
|
+
String val
|
585
|
+
cv.FileStorage.operator<< FileStorage =write_size /O
|
586
|
+
Size val
|
587
|
+
cv.FileStorage.operator<< FileStorage =write_point /O
|
588
|
+
Point val
|
589
|
+
cv.FileStorage.operator<< FileStorage =write_point2f /O
|
590
|
+
Point2f val
|
591
|
+
cv.FileStorage.operator<< FileStorage =write_point3f /O
|
592
|
+
Point3f val
|
593
|
+
cv.FileStorage.operator<< FileStorage =write_point2d /O
|
594
|
+
Point2d val
|
595
|
+
cv.FileStorage.operator<< FileStorage =write_point3d /O
|
596
|
+
Point3d val
|
597
|
+
cv.FileStorage.operator<< FileStorage =write_rect /O
|
598
|
+
Rect val
|
599
|
+
cv.FileStorage.operator<< FileStorage =write_mat /O
|
600
|
+
Mat val
|
601
|
+
class cv.FileNodeIterator
|
602
|
+
cv.FileNode.operator>> void =read_int
|
603
|
+
int val /IO
|
604
|
+
cv.FileNode.operator>> void =read_float
|
605
|
+
float val /IO
|
606
|
+
cv.FileNode.operator>> void =read_double
|
607
|
+
double val /IO
|
608
|
+
cv.FileNode.operator>> void =read_string
|
609
|
+
String val /IO
|
610
|
+
cv.FileNode.operator>> void =read_mat
|
611
|
+
Mat val /IO
|
612
|
+
cv.FileNode.begin FileNodeIterator
|
613
|
+
cv.FileNode.end FileNodeIterator
|
614
|
+
cv.FileNodeIterator.operator++ FileNodeIterator
|
615
|
+
cv.FileNodeIterator.operator-- FileNodeIterator
|
616
|
+
cv.FileNodeIterator.operator* FileNode =to_node
|
617
|
+
cv.FileNodeIterator.operator== bool
|
618
|
+
FileNodeIterator other
|
619
|
+
cv.FileNodeIterator.operator!= bool
|
620
|
+
FileNodeIterator other
|
452
621
|
|
data/lib/ropencv/ropencv_ruby.rb
CHANGED
@@ -10,6 +10,14 @@ module OpenCV
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
+
def self.std
|
14
|
+
Std
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.cv
|
18
|
+
Cv
|
19
|
+
end
|
20
|
+
|
13
21
|
module Std
|
14
22
|
class Vector
|
15
23
|
class Cv_Mat
|
@@ -36,6 +44,12 @@ module OpenCV
|
|
36
44
|
include Std
|
37
45
|
|
38
46
|
module Cv
|
47
|
+
def self.min_max_loc(src,min_loc = Point.new,max_loc = Point.new,mask = Mat.new)
|
48
|
+
p = FFI::MemoryPointer.new(:double,2)
|
49
|
+
Rbind::cv_min_max_loc(src, p[0], p[1], min_loc, max_loc, mask)
|
50
|
+
[p[0].read_double,p[1].read_double]
|
51
|
+
end
|
52
|
+
|
39
53
|
class Size
|
40
54
|
def *(val)
|
41
55
|
Size.new(width*val,height*val)
|
@@ -169,7 +183,129 @@ module OpenCV
|
|
169
183
|
|
170
184
|
class Scalar; include Vecxd; SIZE=4;end
|
171
185
|
|
186
|
+
class FileStorage
|
187
|
+
include Enumerable
|
188
|
+
|
189
|
+
def each(&block)
|
190
|
+
if block_given?
|
191
|
+
root.each(&block)
|
192
|
+
else
|
193
|
+
to_enum(:each)
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
def <<(val)
|
198
|
+
if val.is_a?(Fixnum)
|
199
|
+
write_int(val)
|
200
|
+
elsif val.is_a?(Float)
|
201
|
+
write_double(val)
|
202
|
+
else
|
203
|
+
name = val.class.name.split("::").last.downcase
|
204
|
+
send("write_#{name}",val)
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
def method_missing(m,*args)
|
209
|
+
if args.empty?
|
210
|
+
self[m.to_s]
|
211
|
+
else
|
212
|
+
super
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
class FileNode
|
218
|
+
include Enumerable
|
219
|
+
alias :empty? :empty
|
220
|
+
alias :int? :isInt
|
221
|
+
alias :real? :isReal
|
222
|
+
alias :string? :isString
|
223
|
+
alias :map? :isMap
|
224
|
+
alias :seq? :isSeq
|
225
|
+
|
226
|
+
def each(&block)
|
227
|
+
if block_given?
|
228
|
+
iter = self.begin()
|
229
|
+
while(iter != self.end())
|
230
|
+
yield(iter.to_node)
|
231
|
+
iter.plusplus_operator
|
232
|
+
end
|
233
|
+
else
|
234
|
+
to_enum(:each)
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
def to_array_of_int
|
239
|
+
raise RuntimeError, "FileNode is not the root node of a sequence" unless seq?
|
240
|
+
map(&:to_int)
|
241
|
+
end
|
242
|
+
|
243
|
+
def to_array_of_float
|
244
|
+
raise RuntimeError, "FileNode is not the root node of a sequence" unless seq?
|
245
|
+
map(&:to_float)
|
246
|
+
end
|
247
|
+
|
248
|
+
def to_array_of_double
|
249
|
+
raise RuntimeError, "FileNode is not the root node of a sequence" unless seq?
|
250
|
+
map(&:to_double)
|
251
|
+
end
|
252
|
+
|
253
|
+
def to_array_of_string
|
254
|
+
raise RuntimeError, "FileNode is not the root node of a sequence" unless seq?
|
255
|
+
map(&:to_string)
|
256
|
+
end
|
257
|
+
|
258
|
+
def to_mat
|
259
|
+
raise RuntimeError, "FileNode is empty" if empty?
|
260
|
+
raise RuntimeError, "FileNode is not storing a Mat" unless isMap
|
261
|
+
val = cv::Mat.new
|
262
|
+
read_mat(val)
|
263
|
+
val
|
264
|
+
end
|
265
|
+
|
266
|
+
def to_float
|
267
|
+
raise RuntimeError, "FileNode is empty" if empty?
|
268
|
+
raise RuntimeError, "FileNode is not storing a float" unless isReal
|
269
|
+
p = FFI::MemoryPointer.new(:float,1)
|
270
|
+
read_float(p)
|
271
|
+
p.get_float32 0
|
272
|
+
end
|
273
|
+
|
274
|
+
def to_double
|
275
|
+
raise RuntimeError, "FileNode is empty" if empty?
|
276
|
+
raise RuntimeError, "FileNode is not storing a double" unless isReal
|
277
|
+
p = FFI::MemoryPointer.new(:uchar,8)
|
278
|
+
read_double(p)
|
279
|
+
p.get_float64 0
|
280
|
+
end
|
281
|
+
|
282
|
+
def to_int
|
283
|
+
raise RuntimeError, "FileNode is empty" if empty?
|
284
|
+
raise RuntimeError, "FileNode is not storing a double" unless isInt
|
285
|
+
p = FFI::MemoryPointer.new(:int,1)
|
286
|
+
read_int(p)
|
287
|
+
p.get_int32 0
|
288
|
+
end
|
289
|
+
|
290
|
+
def to_string
|
291
|
+
raise RuntimeError, "FileNode is empty" if empty?
|
292
|
+
raise RuntimeError, "FileNode is not storing a string" unless isString
|
293
|
+
str = cv::String.new
|
294
|
+
read_string(str)
|
295
|
+
str
|
296
|
+
end
|
297
|
+
|
298
|
+
def method_missing(m,*args)
|
299
|
+
if args.empty? && map?
|
300
|
+
self[m.to_s]
|
301
|
+
else
|
302
|
+
super
|
303
|
+
end
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
172
307
|
class Mat
|
308
|
+
include Enumerable
|
173
309
|
class << self
|
174
310
|
alias :rbind_new :new
|
175
311
|
|
@@ -185,11 +321,13 @@ module OpenCV
|
|
185
321
|
|
186
322
|
def self.to_native(obj,context)
|
187
323
|
if obj.is_a?(Std::Vector::Cv_Point)
|
188
|
-
cv::Mat.new(obj.size,
|
324
|
+
cv::Mat.new(obj.size,1,cv::CV_32SC2,obj.data,cv::Mat::AUTO_STEP).__obj_ptr__
|
189
325
|
elsif obj.is_a?(Std::Vector::Cv_Point2f)
|
190
|
-
cv::Mat.new(obj.size,
|
326
|
+
cv::Mat.new(obj.size,1,cv::CV_32FC2,obj.data,cv::Mat::AUTO_STEP).__obj_ptr__
|
191
327
|
elsif obj.is_a?(Std::Vector::Cv_Point3f)
|
192
|
-
cv::Mat.new(obj.size,
|
328
|
+
cv::Mat.new(obj.size,1,cv::CV_32FC3,obj.data,cv::Mat::AUTO_STEP).__obj_ptr__
|
329
|
+
elsif obj.is_a?(Std::Vector::Fixnum)
|
330
|
+
cv::Mat.new(obj.size,1,cv::CV_32SC1,obj.data,cv::Mat::AUTO_STEP).__obj_ptr__
|
193
331
|
elsif obj.is_a?(Array)
|
194
332
|
h,w,e= if obj.first.is_a? Array
|
195
333
|
[obj.size,obj.first.size,obj.first.first]
|
@@ -381,6 +519,18 @@ module OpenCV
|
|
381
519
|
pp.text str
|
382
520
|
end
|
383
521
|
|
522
|
+
def each
|
523
|
+
if block_given?
|
524
|
+
0.upto(rows-1) do |row|
|
525
|
+
0.upto(cols-1) do |col|
|
526
|
+
yield at(row,col)
|
527
|
+
end
|
528
|
+
end
|
529
|
+
else
|
530
|
+
to_enum(:each)
|
531
|
+
end
|
532
|
+
end
|
533
|
+
|
384
534
|
def each_row_with_index(&block)
|
385
535
|
if block_given?
|
386
536
|
r = rows
|
data/ropencv.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'ropencv'
|
3
|
-
s.version = '0.0.
|
4
|
-
s.date = '2013-
|
3
|
+
s.version = '0.0.13'
|
4
|
+
s.date = '2013-12-12'
|
5
5
|
s.platform = Gem::Platform::RUBY
|
6
6
|
s.authors = ['Alexander Duda']
|
7
7
|
s.email = ['Alexander.Duda@dfki.de']
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.files = `git ls-files`.split("\n") + ["lib/ropencv/ropencv_types.rb","lib/ropencv/ropencv_ruby.rb"]
|
12
12
|
s.require_path = 'lib'
|
13
13
|
s.required_rubygems_version = ">= 1.3.6"
|
14
|
-
s.add_runtime_dependency "rbind", ">= 0.0.
|
14
|
+
s.add_runtime_dependency "rbind", ">= 0.0.23"
|
15
15
|
s.add_runtime_dependency "ffi", "~> 1.9.0"
|
16
16
|
s.extensions = ['ext/extconf.rb']
|
17
17
|
s.license = 'BSD'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ropencv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Duda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rbind
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.0.
|
19
|
+
version: 0.0.23
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.0.
|
26
|
+
version: 0.0.23
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: ffi
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +52,8 @@ files:
|
|
52
52
|
- CMakeLists.txt
|
53
53
|
- License.txt
|
54
54
|
- README.md
|
55
|
+
- examples/file_storage.rb
|
56
|
+
- examples/find_homography.rb
|
55
57
|
- examples/find_keypoints.rb
|
56
58
|
- examples/hough_circles.rb
|
57
59
|
- examples/logo.png
|
@@ -109,3 +111,4 @@ signing_key:
|
|
109
111
|
specification_version: 4
|
110
112
|
summary: Ruby bindings for opencv 2.4.4 and higher
|
111
113
|
test_files: []
|
114
|
+
has_rdoc:
|