hornetseye-opencv 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +22 -2
- data/Rakefile +4 -5
- data/ext/cvmat.cc +3 -5
- data/ext/init.cc +2 -2
- data/ext/node.cc +2 -2
- data/lib/hornetseye-opencv/cvmat.rb +2 -4
- data/lib/hornetseye-opencv/node.rb +4 -5
- data/lib/hornetseye_opencv_ext.rb +2 -0
- data/test/tc_hornetseye_opencv.rb +4 -4
- metadata +10 -10
data/README.md
CHANGED
@@ -1,5 +1,25 @@
|
|
1
1
|
hornetseye-opencv
|
2
|
-
|
3
|
-
This Ruby extension provides conversions from {Hornetseye::MultiArray} to {OpenCV::CvMat} and vice versa.
|
2
|
+
===============
|
4
3
|
|
4
|
+
**Author**: Jan Wedekind
|
5
|
+
**Copyright**: 2010, 2011
|
6
|
+
**License**: GPL
|
7
|
+
|
8
|
+
Synopsis
|
9
|
+
--------
|
10
|
+
|
11
|
+
This Ruby extension implements conversions between {OpenCV::CvMat} and {Hornetseye::MultiArray}.
|
12
|
+
|
13
|
+
Installation
|
14
|
+
------------
|
15
|
+
To install this Ruby extension, use the following command:
|
16
|
+
|
17
|
+
$ sudo gem install hornetseye-opencv
|
18
|
+
|
19
|
+
Alternatively you can build and install the Ruby extension from source as follows:
|
20
|
+
|
21
|
+
$ rake
|
22
|
+
$ sudo rake install
|
23
|
+
|
24
|
+
See [https://github.com/wedesoft/ruby-opencv](https://github.com/wedesoft/ruby-opencv) for more information on how to install *opencv* for Ruby.
|
5
25
|
|
data/Rakefile
CHANGED
@@ -7,7 +7,7 @@ require 'rake/loaders/makefile'
|
|
7
7
|
require 'rbconfig'
|
8
8
|
|
9
9
|
PKG_NAME = 'hornetseye-opencv'
|
10
|
-
PKG_VERSION = '0.
|
10
|
+
PKG_VERSION = '0.3.0'
|
11
11
|
CFG = RbConfig::CONFIG
|
12
12
|
CXX = ENV[ 'CXX' ] || 'g++'
|
13
13
|
RB_FILES = FileList[ 'lib/**/*.rb' ]
|
@@ -81,8 +81,7 @@ end
|
|
81
81
|
begin
|
82
82
|
require 'yard'
|
83
83
|
YARD::Rake::YardocTask.new :yard do |y|
|
84
|
-
y.
|
85
|
-
y.files << FileList[ 'lib/**/*.rb' ]
|
84
|
+
y.files << RB_FILES
|
86
85
|
end
|
87
86
|
rescue LoadError
|
88
87
|
STDERR.puts 'Please install \'yard\' if you want to generate documentation'
|
@@ -115,7 +114,7 @@ begin
|
|
115
114
|
s.extra_rdoc_files = []
|
116
115
|
s.rdoc_options = %w{--no-private}
|
117
116
|
s.add_dependency %<malloc>, [ '~> 1.1' ]
|
118
|
-
s.add_dependency %<multiarray>, [ '~> 0.
|
117
|
+
s.add_dependency %<multiarray>, [ '~> 0.23' ]
|
119
118
|
s.add_dependency %<opencv>, [ '~> 0.0' ]
|
120
119
|
s.add_development_dependency %q{rake}
|
121
120
|
end
|
@@ -138,7 +137,7 @@ begin
|
|
138
137
|
s.extra_rdoc_files = []
|
139
138
|
s.rdoc_options = %w{--no-private}
|
140
139
|
s.add_dependency %<malloc>, [ '~> 1.1' ]
|
141
|
-
s.add_dependency %<multiarray>, [ '~> 0.
|
140
|
+
s.add_dependency %<multiarray>, [ '~> 0.23' ]
|
142
141
|
s.add_dependency %<opencv>, [ '~> 0.0' ]
|
143
142
|
end
|
144
143
|
GEM_BINARY = "#{PKG_NAME}-#{PKG_VERSION}-#{$BINSPEC.platform}.gem"
|
data/ext/cvmat.cc
CHANGED
@@ -83,11 +83,9 @@ VALUE CvMatExt::wrapToMultiArray( VALUE rbSelf )
|
|
83
83
|
VALUE rbDest = rb_funcall( cMalloc, rb_intern( "new" ), 1, INT2NUM( size ) );
|
84
84
|
char *dest; Data_Get_Struct( rbDest, char, dest );
|
85
85
|
copy( cvMat->data.ptr, cvMat->data.ptr + size, dest );
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
VALUE rbImport = rb_funcall( rbMultiArray, rb_intern( "new" ), 1, rbDest );
|
90
|
-
rbRetVal = rbImport;
|
86
|
+
rbRetVal = rb_funcall(rb_const_get(mHornetseye, rb_intern("MultiArray")),
|
87
|
+
rb_intern("import"), 5, rbTypecode, rbDest,
|
88
|
+
INT2NUM(channels), INT2NUM(width), INT2NUM(height));
|
91
89
|
} catch( std::exception &e ) {
|
92
90
|
rb_raise( rb_eRuntimeError, "%s", e.what() );
|
93
91
|
};
|
data/ext/init.cc
CHANGED
@@ -31,8 +31,8 @@ extern "C" {
|
|
31
31
|
|
32
32
|
void Init_hornetseye_opencv(void)
|
33
33
|
{
|
34
|
-
|
35
|
-
|
34
|
+
rb_eval_string("require 'opencv'");
|
35
|
+
rb_eval_string("require 'multiarray'");
|
36
36
|
VALUE mOpenCV = rb_define_module( "OpenCV" );
|
37
37
|
VALUE mHornetseye = rb_define_module( "Hornetseye" );
|
38
38
|
CvMatExt::registerRubyClass( mOpenCV );
|
data/ext/node.cc
CHANGED
@@ -86,8 +86,8 @@ VALUE Node::wrapToCvMat( VALUE rbSelf )
|
|
86
86
|
"Conversion to CvMat only supports UBYTE, BYTE, USINT, "
|
87
87
|
"SINT, INT, SFLOAT, DFLOAT as basic types" );
|
88
88
|
};
|
89
|
-
VALUE rbTypeSize = rb_funcall(
|
90
|
-
int typesize = NUM2INT(
|
89
|
+
VALUE rbTypeSize = rb_funcall(rbTypecode, rb_intern("storage_size"), 0);
|
90
|
+
int typesize = NUM2INT(rbTypeSize) * width * height * channels;
|
91
91
|
VALUE cMalloc = rb_define_class_under( mModule, "Malloc", rb_cObject );
|
92
92
|
unsigned char *source;
|
93
93
|
dataGetStruct( rbMalloc, cMalloc, unsigned char, source );
|
@@ -25,11 +25,9 @@ module OpenCV
|
|
25
25
|
when 1
|
26
26
|
retval.roll[ 0 ]
|
27
27
|
when 2
|
28
|
-
Hornetseye::MultiArray
|
29
|
-
width, height ).new retval.memory
|
28
|
+
Hornetseye::MultiArray.import Hornetseye::COMPLEX(retval.typecode), retval.memory, width, height
|
30
29
|
when 3
|
31
|
-
Hornetseye::MultiArray
|
32
|
-
width, height ).new retval.memory
|
30
|
+
Hornetseye::MultiArray.import Hornetseye::RGB(retval.typecode), retval.memory, width, height
|
33
31
|
else
|
34
32
|
retval
|
35
33
|
end
|
@@ -22,12 +22,11 @@ module Hornetseye
|
|
22
22
|
def to_cvmat
|
23
23
|
data = memorise
|
24
24
|
if typecode < Composite
|
25
|
-
|
26
|
-
|
27
|
-
new( data.memory ).orig_to_cvmat
|
25
|
+
MultiArray.import(data.typecode.basetype, data.memory,
|
26
|
+
data.typecode.num_elements, *data.shape).orig_to_cvmat
|
28
27
|
elsif dimension == 2
|
29
|
-
|
30
|
-
|
28
|
+
MultiArray.import(data.typecode.basetype, data.memory,
|
29
|
+
1, *data.shape).orig_to_cvmat
|
31
30
|
else
|
32
31
|
data.orig_to_cvmat
|
33
32
|
end
|
@@ -13,6 +13,8 @@
|
|
13
13
|
#
|
14
14
|
# You should have received a copy of the GNU General Public License
|
15
15
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
require 'opencv'
|
17
|
+
require 'multiarray'
|
16
18
|
require 'hornetseye-opencv/cvmat'
|
17
19
|
require 'hornetseye-opencv/iplimage'
|
18
20
|
require 'hornetseye-opencv/node'
|
@@ -40,10 +40,10 @@ class TC_Hornetseye_OpenCV < Test::Unit::TestCase
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def setup
|
43
|
-
@m1 = M(
|
44
|
-
@m2 = M(
|
45
|
-
@m3 = M(
|
46
|
-
@m4 = M(
|
43
|
+
@m1 = M(I, 2)[ [ 1, 2, 3 ], [ 4, 5, 6 ] ]
|
44
|
+
@m2 = M(X, 2)[ [ X( 1, 2 ) ], [ X( 3, 4 ) ] ]
|
45
|
+
@m3 = M(C, 2)[ [ C( 1, 2, 3 ), C( 4, 5, 6 ) ] ]
|
46
|
+
@m4 = M(I, 3)[ [ [ 1, 2, 3, 4 ] ] ]
|
47
47
|
end
|
48
48
|
|
49
49
|
def teardown
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
7
|
+
- 3
|
8
8
|
- 0
|
9
|
-
version: 0.
|
9
|
+
version: 0.3.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jan Wedekind
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2011-06-29 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -41,8 +41,8 @@ dependencies:
|
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
segments:
|
43
43
|
- 0
|
44
|
-
-
|
45
|
-
version: "0.
|
44
|
+
- 23
|
45
|
+
version: "0.23"
|
46
46
|
type: :runtime
|
47
47
|
version_requirements: *id002
|
48
48
|
- !ruby/object:Gem::Dependency
|
@@ -85,18 +85,18 @@ files:
|
|
85
85
|
- README.md
|
86
86
|
- COPYING
|
87
87
|
- .document
|
88
|
-
- lib/hornetseye-opencv/iplimage.rb
|
89
88
|
- lib/hornetseye-opencv/node.rb
|
90
89
|
- lib/hornetseye-opencv/cvmat.rb
|
90
|
+
- lib/hornetseye-opencv/iplimage.rb
|
91
91
|
- lib/hornetseye_opencv_ext.rb
|
92
92
|
- ext/init.cc
|
93
|
-
- ext/node.cc
|
94
93
|
- ext/cvmat.cc
|
94
|
+
- ext/node.cc
|
95
|
+
- ext/node.hh
|
95
96
|
- ext/rubytools.hh
|
96
|
-
- ext/cvmat.hh
|
97
|
-
- ext/rubyinc.hh
|
98
97
|
- ext/error.hh
|
99
|
-
- ext/
|
98
|
+
- ext/rubyinc.hh
|
99
|
+
- ext/cvmat.hh
|
100
100
|
- ext/rubytools.tcc
|
101
101
|
- test/ts_hornetseye_opencv.rb
|
102
102
|
- test/tc_hornetseye_opencv.rb
|