ropencv 0.0.18 → 0.0.19

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a21fadec0688391caa58a3f1f6d0d6cab7a3d3e5
4
- data.tar.gz: db8f28e144e303f017162b156cdf78259928180f
3
+ metadata.gz: 1650b14ec2a2ce44837bf1975ecdd677c4bae996
4
+ data.tar.gz: 0ffe7a2c605e9ade443040e70a307fc17a16de78
5
5
  SHA512:
6
- metadata.gz: cdc23ed5fa3c1e6e27eeaf4b58bd2f2f4ea3e132ec61c1ffb321882c7c75d8054f7ca0880f219639a50bfd8c4154e3cc8950c1923f4c42b0ac8f331f97569fec
7
- data.tar.gz: ae92ab5a3c0c8547755227904f2b11b99b8db366aa46c2ea06a2b6bc3f44bd7ca6e8878195216a83d4d7a4ca351a49238f96d06cb7fbe3c5c338b91850b5b9ab
6
+ metadata.gz: 6bae2f59f42f6ae007c8cfe7e7b19de02e73ece1c5c47ff6a073192333b4fc5d31dbf2236355990a9f45940757ffee25174c8057f9c7821e567d46960bc92b28
7
+ data.tar.gz: c1d4d40884066d282ef9325cd5c1aea5d9fa8bb9b10da7d3b6e3b716b66ced06849884fd4bf2f8d04a0a18821cffa48dc8af2ebea30074ea453c5faba01ecfce
@@ -1,8 +1,8 @@
1
1
  require 'ropencv'
2
2
  include OpenCV
3
3
 
4
- img1 = cv::imread(File.join('data','tsukuba_l.png'),CV_LOAD_IMAGE_GRAYSCALE)
5
- img2 = cv::imread(File.join('data','tsukuba_r.png'),CV_LOAD_IMAGE_GRAYSCALE)
4
+ img1 = cv::imread(File.join('data','tsukuba_l.png'),cv::IMREAD_GRAYSCALE)
5
+ img2 = cv::imread(File.join('data','tsukuba_r.png'),cv::IMREAD_GRAYSCALE)
6
6
  if (img1.empty() || img2.empty())
7
7
  puts("Can't read one of the images\n")
8
8
  return -1
@@ -10,12 +10,12 @@ end
10
10
 
11
11
  keypoints1=Vector.new(cv::KeyPoint)
12
12
  keypoints2=Vector.new(cv::KeyPoint)
13
- detector = cv::FeatureDetector::create('SURF')
13
+ detector = cv::FastFeatureDetector::create
14
14
  detector.detect(img1, keypoints1)
15
15
  detector.detect(img2, keypoints2)
16
16
 
17
17
  # computing descriptors
18
- extractor=cv::DescriptorExtractor::create('SURF')
18
+ extractor = cv::ORB.create
19
19
  descriptors2=cv::Mat.new(3, 4, cv::CV_64FC1)
20
20
  descriptors1=cv::Mat.new(3, 4, cv::CV_64FC1)
21
21
  extractor.compute(img1, keypoints1, descriptors1)
@@ -0,0 +1,14 @@
1
+ # writes a video as single images"
2
+
3
+ require 'ropencv'
4
+ include OpenCV
5
+
6
+ video_file = cv::VideoCapture.new(ARGV[0])
7
+ frame = cv::Mat.new
8
+ id = 0
9
+ puts "writing video as single images"
10
+ while video_file.read(frame)
11
+ cv::imwrite "name_#{"%05d" % id}.png",frame
12
+ id+=1
13
+ end
14
+ puts "all done"
data/ext/helper.rb CHANGED
@@ -92,9 +92,13 @@ def find_opencv
92
92
  #check opencv version
93
93
  out = IO.popen("pkg-config --modversion opencv")
94
94
  opencv_version = out.read.chomp
95
+ opencv_version =~ /(\d+).(\d+).(\d+)/
96
+ major = $1.to_i
97
+ minor1 = $2.to_i
98
+ minor2= $3.to_i
95
99
 
96
100
  ##add opencv headers
97
- headers = if opencv_version >= "2.4.4" && opencv_version < "2.4.9.0"
101
+ headers = if major >= 2 && major < 3
98
102
  ["opencv2/core/core_c.h", "opencv2/core/types_c.h",
99
103
  "opencv2/core/core.hpp", "opencv2/flann/miniflann.hpp",
100
104
  "opencv2/imgproc/imgproc_c.h", "opencv2/imgproc/types_c.h",
@@ -106,36 +110,19 @@ def find_opencv
106
110
  "opencv2/highgui/highgui_c.h", "opencv2/highgui/highgui.hpp",
107
111
  "opencv2/contrib/contrib.hpp", "opencv2/nonfree/nonfree.hpp",
108
112
  "opencv2/nonfree/features2d.hpp"]
109
- elsif opencv_version >= "2.4.9" && opencv_version < "3.0.0"
110
- ["opencv2/core.hpp", "opencv2/core/types.hpp","opencv2/core/persistence.hpp",
111
- "opencv2/core/utility.hpp", "opencv2/core/base.hpp","opencv2/core/core.hpp",
112
- "opencv2/contrib.hpp", "opencv2/calib3d.hpp",
113
- "opencv2/features2d.hpp", "opencv2/flann.hpp",
114
- "opencv2/highgui.hpp", "opencv2/imgproc.hpp",
115
- "opencv2/ml.hpp", "opencv2/nonfree.hpp",
116
- "opencv2/nonfree/features2d.hpp", "opencv2/objdetect.hpp",
117
- "opencv2/photo.hpp", "opencv2/softcascade.hpp",
118
- "opencv2/stitching.hpp", "opencv2/superres.hpp",
119
- "opencv2/video.hpp", "opencv2/legacy.hpp","opencv2/video/tracking.hpp",
120
- "opencv2/video/background_segm.hpp",
121
- "opencv2/videostab.hpp"]
122
- elsif opencv_version >= "3.0.0"
123
- ["opencv2/core.hpp", "opencv2/core/types.hpp","opencv2/core/persistence.hpp",
124
- "opencv2/core/utility.hpp", "opencv2/core/base.hpp","opencv2/core/core.hpp",
125
- "opencv2/contrib/contrib.hpp", "opencv2/calib3d.hpp",
126
- "opencv2/features2d.hpp", "opencv2/flann.hpp",
127
- "opencv2/highgui.hpp", "opencv2/imgproc.hpp",
128
- "opencv2/ml.hpp", "opencv2/nonfree.hpp",
129
- "opencv2/nonfree/features2d.hpp", "opencv2/objdetect.hpp",
130
- "opencv2/photo.hpp", "opencv2/softcascade/softcascade.hpp",
131
- "opencv2/stitching.hpp", "opencv2/superres.hpp",
132
- "opencv2/video.hpp", "opencv2/legacy/legacy.hpp","opencv2/video/tracking.hpp",
133
- "opencv2/video/background_segm.hpp",
134
- "opencv2/videostab.hpp"]
113
+ elsif major >= 3
114
+ ["opencv2/core.hpp", "opencv2/core/base.hpp", "opencv2/core/mat.hpp", "opencv2/core/ocl.hpp",
115
+ "opencv2/core/opengl.hpp", "opencv2/core/optim.hpp", "opencv2/core/persistence.hpp", "opencv2/core/types.hpp",
116
+ "opencv2/core/utility.hpp", "opencv2/imgproc.hpp", "opencv2/imgcodecs.hpp", "opencv2/videoio.hpp",
117
+ "opencv2/highgui.hpp", "opencv2/video/background_segm.hpp", "opencv2/video/tracking.hpp", "opencv2/flann/miniflann.hpp",
118
+ "opencv2/ml.hpp", "opencv2/features2d.hpp", "opencv2/calib3d.hpp", "opencv2/objdetect.hpp", "opencv2/photo.hpp",
119
+ "opencv2/shape/hist_cost.hpp", "opencv2/shape/shape_distance.hpp", "opencv2/shape/shape_transformer.hpp", "opencv2/stitching.hpp",
120
+ "opencv2/stitching/detail/blenders.hpp", "opencv2/stitching/detail/exposure_compensate.hpp", "opencv2/stitching/detail/motion_estimators.hpp",
121
+ "opencv2/stitching/detail/seam_finders.hpp", "opencv2/stitching/detail/timelapsers.hpp", "opencv2/videostab/motion_core.hpp",
122
+ "opencv2/viz/types.hpp", "opencv2/viz/widgets.hpp"]
135
123
  else
136
124
  raise "OpenCV version #{opencv_version} is not supported"
137
125
  end
138
-
139
126
  temp = paths.clone
140
127
  temp.each do |path|
141
128
  if path =~ /(.*)opencv$/
@@ -158,6 +145,6 @@ def find_opencv
158
145
  nil
159
146
  end
160
147
  end.compact
161
- Rbind.log.info "found opencv #{opencv_version}: #{paths[0]}"
148
+ Rbind.log.warn "found opencv #{opencv_version}: #{paths[0]}"
162
149
  [opencv_version,headers]
163
150
  end
data/ext/rbind.rb CHANGED
@@ -9,24 +9,32 @@ rbind = Rbind::Rbind.new("OpenCV")
9
9
  rbind.pkg_config << "opencv"
10
10
  rbind.includes = opencv_headers
11
11
 
12
+ # add Vec types
13
+ 2.upto(6) do |idx|
14
+ next if idx == 5
15
+ rbind.parser.add_type Vec.new("cv::Vec#{idx}d",rbind.double,idx)
16
+ rbind.parser.add_type Vec.new("cv::Vec#{idx}f",rbind.float,idx)
17
+ rbind.parser.add_type Vec.new("cv::Vec#{idx}i",rbind.int,idx)
18
+ end
19
+
12
20
  # add some templates and alias
13
21
  rbind.parser.type_alias["const_c_string"] = rbind.c_string.to_const
14
22
  if opencv_version >= "3.0.0"
15
23
  rbind.add_std_types
16
24
  rbind.parser.add_type OpenCVPtr2.new
25
+ rbind.cv.add_type(Rbind::RClass.new("ShapeTransformer"))
26
+ rbind.cv.add_type(Rbind::RClass.new("Feature2D"))
27
+ rbind.cv.type_alias["FeatureDetector"] = rbind.cv.Feature2D
28
+ rbind.cv.type_alias["DescriptorExtractor"] = rbind.cv.Feature2D
29
+ # add missing enum values
30
+ rbind.cv.add_type(Rbind::RClass.new("Stitcher"))
31
+ rbind.cv.Stitcher.add_type(Rbind::REnum.new("Status"))
32
+ rbind.cv.Stitcher.Status.values = {:OK => 0, :ERR_NEED_MORE_IMGS => 1,:ERR_HOMOGRAPHY_EST_FAIL => 2,:ERR_CAMERA_PARAMS_ADJUST_FAIL => 3}
17
33
  else
18
34
  rbind.add_std_vector
19
35
  rbind.parser.add_type OpenCVPtr.new
20
36
  end
21
37
 
22
- # add Vec types
23
- 2.upto(6) do |idx|
24
- next if idx == 5
25
- rbind.parser.add_type Vec.new("cv::Vec#{idx}d",rbind.double,idx)
26
- rbind.parser.add_type Vec.new("cv::Vec#{idx}f",rbind.float,idx)
27
- rbind.parser.add_type Vec.new("cv::Vec#{idx}i",rbind.int,idx)
28
- end
29
-
30
38
  # parsing
31
39
  rbind.parse File.join(File.dirname(__FILE__),"pre_opencv244.txt")
32
40
  rbind.parse File.join(File.dirname(__FILE__),"opencv.txt")
@@ -39,6 +47,26 @@ rbind.parse File.join(File.dirname(__FILE__),"post_opencv244.txt")
39
47
  # post parsing + patching wrong signatures
40
48
  if opencv_version >= "2.4.9" && opencv_version < "3.0.0"
41
49
  rbind.parse File.join(File.dirname(__FILE__),"post_opencv249.txt")
50
+
51
+ rbind.cv.calcOpticalFlowSF[0].parameter(0).remove_const!
52
+ rbind.cv.calcOpticalFlowSF[0].parameter(1).remove_const!
53
+ rbind.cv.calcOpticalFlowSF[0].parameter(2).remove_const!
54
+
55
+ rbind.cv.calcOpticalFlowSF[1].parameter(0).remove_const!
56
+ rbind.cv.calcOpticalFlowSF[1].parameter(1).remove_const!
57
+ rbind.cv.calcOpticalFlowSF[1].parameter(2).remove_const!
58
+
59
+ rbind.cv.chamerMatching.parameter(0).remove_const!
60
+ rbind.cv.chamerMatching.parameter(1).remove_const!
61
+ rbind.cv.chamerMatching.parameter(2).remove_const!
62
+
63
+ rbind.cv.CascadeClassifier.detectMultiScale[1].parameter(2).remove_const!
64
+ rbind.cv.CascadeClassifier.detectMultiScale[1].parameter(3).remove_const!
65
+ rbind.cv.BRISK.generateKernel.parameter(0).remove_const!
66
+ rbind.cv.BRISK.generateKernel.parameter(1).remove_const!
67
+ rbind.cv.BRISK.operation("BRISK")[1].parameter(0).remove_const!
68
+ rbind.cv.BRISK.operation("BRISK")[1].parameter(1).remove_const!
69
+ rbind.cv.putText.parameter(0).remove_const!
42
70
  elsif opencv_version >= "3.0.0"
43
71
  rbind.parse File.join(File.dirname(__FILE__),"post_opencv249.txt")
44
72
  rbind.parse File.join(File.dirname(__FILE__),"post_opencv300.txt")
@@ -46,28 +74,18 @@ elsif opencv_version >= "3.0.0"
46
74
  rbind.cv.AlignExposures.process.parameter(1).remove_const!
47
75
  rbind.cv.AlignMTB.process[0].parameter(1).remove_const!
48
76
  rbind.cv.AlignMTB.process[1].parameter(1).remove_const!
49
- end
50
-
51
- rbind.cv.calcOpticalFlowSF[0].parameter(0).remove_const!
52
- rbind.cv.calcOpticalFlowSF[0].parameter(1).remove_const!
53
- rbind.cv.calcOpticalFlowSF[0].parameter(2).remove_const!
54
-
55
- rbind.cv.calcOpticalFlowSF[1].parameter(0).remove_const!
56
- rbind.cv.calcOpticalFlowSF[1].parameter(1).remove_const!
57
- rbind.cv.calcOpticalFlowSF[1].parameter(2).remove_const!
77
+ rbind.CvDTreeNode.ignore = true
78
+ rbind.CvSlice.ignore = true
79
+ rbind.CvTermCriteria.ignore = true
80
+ rbind.cv.polyfit.ignore = true
58
81
 
59
- rbind.cv.CascadeClassifier.detectMultiScale[1].parameter(2).remove_const!
60
- rbind.cv.CascadeClassifier.detectMultiScale[1].parameter(3).remove_const!
82
+ # is removed on opencv master
83
+ rbind.ml.StatModel.getParams.ignore = true if(rbind.ml.StatModel.operation?('getParams'))
61
84
 
62
- rbind.cv.BRISK.generateKernel.parameter(0).remove_const!
63
- rbind.cv.BRISK.generateKernel.parameter(1).remove_const!
64
- rbind.cv.BRISK.operation("BRISK")[1].parameter(0).remove_const!
65
- rbind.cv.BRISK.operation("BRISK")[1].parameter(1).remove_const!
66
-
67
- rbind.cv.putText.parameter(0).remove_const!
68
- rbind.cv.chamerMatching.parameter(0).remove_const!
69
- rbind.cv.chamerMatching.parameter(1).remove_const!
70
- rbind.cv.chamerMatching.parameter(2).remove_const!
85
+ # is removed on opencv master
86
+ # mark none polymorphic class
87
+ rbind.ml.DTrees.Params.polymorphic = false if(rbind.ml.DTrees.type?("Params"))
88
+ end
71
89
 
72
90
  # add some more vector types
73
91
  rbind.parser.type("std::vector<Point2d>")
@@ -9,7 +9,6 @@ include_directories(${OPENCV_INCLUDE_DIRS})
9
9
  link_directories(${OPENCV_LIBRARY_DIRS})
10
10
 
11
11
 
12
-
13
12
  SET(RBIND_SRC
14
13
  "${CMAKE_CURRENT_SOURCE_DIR}/types.cc"
15
14
  "${CMAKE_CURRENT_SOURCE_DIR}/operations.cc"
@@ -19,31 +18,19 @@ add_custom_command(OUTPUT ${RBIND_SRC}
19
18
  COMMAND ruby "${CMAKE_CURRENT_SOURCE_DIR}/../rbind.rb")
20
19
 
21
20
  ADD_LIBRARY(rbind_opencv SHARED ${RBIND_SRC})
22
- TARGET_LINK_LIBRARIES(rbind_opencv ${OPENCV_LIBS} ${OPENCV_LDFLAGS} ${GEM_LIBRARIES})
23
-
24
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/rbind.pc.in ${CMAKE_CURRENT_BINARY_DIR}/rbind_opencv.pc @ONLY)
21
+ TARGET_LINK_LIBRARIES(rbind_opencv ${OPENCV_LIBS} ${OPENCV_LDFLAGS_OTHER} )
25
22
 
26
23
  set(ROOT_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/../..)
27
- if(GEM_INSTALL)
28
- # local install
29
- install(TARGETS rbind_opencv LIBRARY DESTINATION ${ROOT_FOLDER}/lib)
30
- install(FILES types.h operations.h conversions.hpp DESTINATION ${ROOT_FOLDER}/include)
31
- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/extern.rbind DESTINATION ${ROOT_FOLDER}/include)
32
- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/config.rbind DESTINATION ${ROOT_FOLDER}/include)
33
- else()
34
- # global install
35
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/rbind_opencv.pc DESTINATION lib/pkgconfig)
36
- install(TARGETS rbind_opencv LIBRARY DESTINATION lib)
37
- install(FILES types.h operations.h conversions.hpp DESTINATION include/${PROJECT_NAME})
38
- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/extern.rbind DESTINATION include/${PROJECT_NAME})
39
- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/config.rbind DESTINATION include/${PROJECT_NAME})
24
+ install(TARGETS rbind_opencv LIBRARY DESTINATION ${ROOT_FOLDER}/lib/ropencv)
40
25
 
26
+ # global install
27
+ if(NOT GEM_INSTALL)
41
28
  FIND_PACKAGE(Ruby)
42
29
  IF(NOT RUBY_INCLUDE_PATH)
43
30
  MESSAGE(STATUS "Ruby library not found. Cannot install ruby extensions")
44
31
  ELSE(NOT RUBY_INCLUDE_PATH)
45
- STRING(REGEX REPLACE ".*lib(32|64)?/?" "lib/" RUBY_LIBRARY_INSTALL_DIR ${RUBY_RUBY_LIB_PATH})
32
+ STRING(REGEX REPLACE ".*lib(32|64)?/?" "lib/" RUBY_LIBRARY_INSTALL_DIR ${RUBY_RUBY_LIB_DIR})
46
33
  INSTALL(DIRECTORY ${ROOT_FOLDER}/lib/ DESTINATION ${RUBY_LIBRARY_INSTALL_DIR}
47
- FILES_MATCHING PATTERN "*.rb")
34
+ FILES_MATCHING PATTERN "*.rb" PATTERN "*.rbind" PATTERN "*.so" PATTERN "*.dylib")
48
35
  ENDIF(NOT RUBY_INCLUDE_PATH)
49
- endif()
36
+ ENDIF(NOT GEM_INSTALL)
@@ -77,6 +77,8 @@ IF(RUBY_EXECUTABLE AND NOT RUBY_MAJOR_VERSION)
77
77
 
78
78
  EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubyhdrdir']"
79
79
  OUTPUT_VARIABLE RUBY_HDR_DIR)
80
+ EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubyarchhdrdir']"
81
+ OUTPUT_VARIABLE RUBY_ARCH_HDR_DIR)
80
82
 
81
83
  EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['libdir']"
82
84
  OUTPUT_VARIABLE RUBY_POSSIBLE_LIB_DIR)
@@ -114,6 +116,7 @@ IF(RUBY_EXECUTABLE AND NOT RUBY_MAJOR_VERSION)
114
116
  SET(RUBY_VERSION_PATCH ${RUBY_VERSION_PATCH} CACHE PATH "The Ruby patch version" FORCE)
115
117
  SET(RUBY_ARCH_DIR ${RUBY_ARCH_DIR} CACHE PATH "The Ruby arch dir" FORCE)
116
118
  SET(RUBY_HDR_DIR ${RUBY_HDR_DIR} CACHE PATH "The Ruby header dir (1.9)" FORCE)
119
+ SET(RUBY_ARCH_HDR_DIR ${RUBY_ARCH_HDR_DIR} CACHE PATH "The Ruby header dir for architecture-specific files (1.9)" FORCE)
117
120
  SET(RUBY_POSSIBLE_LIB_DIR ${RUBY_POSSIBLE_LIB_DIR} CACHE PATH "The Ruby lib dir" FORCE)
118
121
  SET(RUBY_RUBY_LIB_DIR ${RUBY_RUBY_LIB_DIR} CACHE PATH "The Ruby ruby-lib dir" FORCE)
119
122
  SET(RUBY_SITEARCH_DIR ${RUBY_SITEARCH_DIR} CACHE PATH "The Ruby site arch dir" FORCE)
@@ -178,27 +181,26 @@ FIND_PATH(RUBY_INCLUDE_DIR
178
181
  NAMES ruby.h
179
182
  HINTS
180
183
  ${RUBY_HDR_DIR}
181
- ${RUBY_ARCH_DIR}
182
- /usr/lib/ruby/${_RUBY_VERSION_SHORT}/i586-linux-gnu/ )
183
-
184
- SET(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIR} )
184
+ ${RUBY_ARCH_DIR})
185
+ set(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIR})
185
186
 
186
187
  # if ruby > 1.8 is required or if ruby > 1.8 was found, search for the config.h dir
187
188
  IF( ${Ruby_FIND_VERSION_SHORT_NODOT} GREATER 18 OR ${_RUBY_VERSION_SHORT_NODOT} GREATER 18 OR RUBY_HDR_DIR)
188
- message(STATUS "lookign for config.h")
189
+ message(STATUS "FindRuby: looking for config.h")
189
190
  FIND_PATH(RUBY_CONFIG_INCLUDE_DIR
190
191
  NAMES ruby/config.h config.h
191
192
  HINTS
192
193
  ${RUBY_HDR_DIR}/${RUBY_ARCH}
194
+ ${RUBY_ARCH_HDR_DIR}
193
195
  ${RUBY_ARCH_DIR}
194
196
  )
195
197
 
196
- SET(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIRS} ${RUBY_CONFIG_INCLUDE_DIR} )
198
+ list(APPEND RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIRS} ${RUBY_CONFIG_INCLUDE_DIR})
197
199
  ENDIF( ${Ruby_FIND_VERSION_SHORT_NODOT} GREATER 18 OR ${_RUBY_VERSION_SHORT_NODOT} GREATER 18 OR RUBY_HDR_DIR)
198
200
 
199
201
 
200
202
  # Determine the list of possible names for the ruby library
201
- SET(_RUBY_POSSIBLE_LIB_NAMES ruby ruby-static ruby${_RUBY_VERSION_SHORT} ${RUBY_RUBY_LIBRARY})
203
+ SET(_RUBY_POSSIBLE_LIB_NAMES ruby${_RUBY_VERSION_SHORT} ${RUBY_RUBY_LIBRARY} ruby ruby-static)
202
204
 
203
205
  IF(WIN32)
204
206
  SET( _RUBY_MSVC_RUNTIME "" )
@@ -225,7 +227,10 @@ IF(WIN32)
225
227
  "msvcrt-ruby${RUBY_NODOT_VERSION}-static" )
226
228
  ENDIF(WIN32)
227
229
 
228
- FIND_LIBRARY(RUBY_LIBRARY NAMES ${_RUBY_POSSIBLE_LIB_NAMES} HINTS ${RUBY_POSSIBLE_LIB_DIR} )
230
+ FIND_LIBRARY(RUBY_LIBRARY NAMES ${_RUBY_POSSIBLE_LIB_NAMES} HINTS ${RUBY_POSSIBLE_LIB_DIR} NO_DEFAULT_PATH)
231
+ if(NOT RUBY_LIBRARY)
232
+ FIND_LIBRARY(RUBY_LIBRARY NAMES ${_RUBY_POSSIBLE_LIB_NAMES} HINTS ${RUBY_POSSIBLE_LIB_DIR})
233
+ endif()
229
234
 
230
235
  INCLUDE(FindPackageHandleStandardArgs)
231
236
  SET(_RUBY_REQUIRED_VARS RUBY_EXECUTABLE RUBY_INCLUDE_DIR RUBY_LIBRARY)
@@ -236,7 +241,9 @@ ENDIF(_RUBY_VERSION_SHORT_NODOT GREATER 18)
236
241
  IF(_RUBY_DEBUG_OUTPUT)
237
242
  MESSAGE(STATUS "--------FindRuby.cmake debug------------")
238
243
  MESSAGE(STATUS "_RUBY_POSSIBLE_EXECUTABLE_NAMES: ${_RUBY_POSSIBLE_EXECUTABLE_NAMES}")
244
+ MESSAGE(STATUS "RUBY_POSSIBLE_LIB_DIR: ${RUBY_POSSIBLE_LIB_DIR}")
239
245
  MESSAGE(STATUS "_RUBY_POSSIBLE_LIB_NAMES: ${_RUBY_POSSIBLE_LIB_NAMES}")
246
+ MESSAGE(STATUS "RUBY_LIBRARY: ${RUBY_LIBRARY}")
240
247
  MESSAGE(STATUS "RUBY_ARCH_DIR: ${RUBY_ARCH_DIR}")
241
248
  MESSAGE(STATUS "RUBY_HDR_DIR: ${RUBY_HDR_DIR}")
242
249
  MESSAGE(STATUS "RUBY_POSSIBLE_LIB_DIR: ${RUBY_POSSIBLE_LIB_DIR}")
@@ -352,13 +352,13 @@ module OpenCV
352
352
  Cv::Mat.new(obj.size,1,Cv::CV_64FC1,obj.data,Cv::Mat::AUTO_STEP).__obj_ptr__
353
353
  elsif obj.is_a?(Array)
354
354
  h,w,e= if obj.first.is_a? Array
355
- if obj.find {|array| array.find(Float)}
355
+ if obj.find {|array| array.find{|o| o.is_a?(Float) }}
356
356
  [obj.size,obj.first.size,obj.first.first.to_f]
357
357
  else
358
358
  [obj.size,obj.first.size,obj.first.first]
359
359
  end
360
360
  else
361
- if obj.find(Float)
361
+ if obj.find{|o| o.is_a?(Float) }
362
362
  [obj.size,1,obj.first.to_f]
363
363
  else
364
364
  [obj.size,1,obj.first]
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.18'
4
- s.date = '2014-10-11'
3
+ s.version = '0.0.19'
4
+ s.date = '2015-03-13'
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.26"
14
+ s.add_runtime_dependency "rbind", ">= 0.0.27"
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.18
4
+ version: 0.0.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Duda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-11 00:00:00.000000000 Z
11
+ date: 2015-03-13 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.26
19
+ version: 0.0.27
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
26
+ version: 0.0.27
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: ffi
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +66,7 @@ files:
66
66
  - examples/hough_circles.rb
67
67
  - examples/match_keypoints.rb
68
68
  - examples/polyfit.rb
69
+ - examples/video2images.rb
69
70
  - ext/CMakeLists.txt
70
71
  - ext/extconf.rb
71
72
  - ext/helper.rb
@@ -78,9 +79,7 @@ files:
78
79
  - ext/pre_opencv244.txt
79
80
  - ext/rbind.rb
80
81
  - ext/src/CMakeLists.txt
81
- - ext/src/cmake/FindGem.cmake
82
82
  - ext/src/cmake/FindRuby.cmake
83
- - ext/src/rbind.pc.in
84
83
  - lib/ropencv.rb
85
84
  - lib/ropencv/ropencv_ruby.rb
86
85
  - manifest.xml
@@ -118,4 +117,3 @@ signing_key:
118
117
  specification_version: 4
119
118
  summary: Ruby bindings for opencv 2.4.4 and higher
120
119
  test_files: []
121
- has_rdoc:
@@ -1,155 +0,0 @@
1
- # Author thomas.roehr@dfki.de
2
- #
3
- # Version 0.3 2013-07-02
4
- # - rely on `gem content` to find library and header
5
- # - introduce GEM_OS_PKG to allow search via pkgconfig
6
- # Version 0.2 2010-01-14
7
- # - add support for searching for multiple gems
8
- # Version 0.1 2010-12-15
9
- # - support basic search functionality
10
- # - tested to find rice
11
- #
12
- # OUTPUT:
13
- #
14
- # GEM_INCLUDE_DIRS After successful search contains the include directores
15
- #
16
- # GEM_LIBRARIES After successful search contains the full path of each found library
17
- #
18
- #
19
- # Usage:
20
- # set(GEM_DEBUG TRUE)
21
- # find_package(Gem COMPONENTS rice hoe)
22
- # include_directories(${GEM_INCLUDE_DIRS})
23
- # target_link_libraries(${GEM_LIBRARIES}
24
- #
25
- # in case pkg-config should be used to search for the os pkg, set GEM_OS_PKG, i.e.
26
- # set(GEM_OS_PKG TRUE)
27
- #
28
- # Check for how 'gem' should be called
29
- find_program(GEM_EXECUTABLE
30
- NAMES "gem${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}"
31
- "gem${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}"
32
- "gem-${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}"
33
- "gem-${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}"
34
- "gem${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}${RUBY_VERSION_PATCH}"
35
- "gem${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}.${RUBY_VERSION_PATCH}"
36
- "gem-${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}${RUBY_VERSION_PATCH}"
37
- "gem-${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}.${RUBY_VERSION_PATCH}"
38
- "gem")
39
-
40
- # Making backward compatible
41
- if(Gem_DEBUG)
42
- set(GEM_DEBUG TRUE)
43
- endif()
44
-
45
- if(NOT GEM_EXECUTABLE)
46
- MESSAGE(FATAL_ERROR "Could not find the gem executable - install 'gem' first")
47
- endif()
48
-
49
- if(NOT Gem_FIND_COMPONENTS)
50
- MESSAGE(FATAL_ERROR "If searching for a Gem you have to provide COMPONENTS with the name of the gem")
51
- endif()
52
-
53
- set(GEM_FOUND TRUE)
54
- foreach(Gem_NAME ${Gem_FIND_COMPONENTS})
55
- # If the gem is installed as a gem
56
- if(NOT GEM_OS_PKG)
57
- set(GEM_HOME ENV{GEM_HOME})
58
-
59
- # Use `gem content <gem-name>` to extract current information about installed gems
60
- # Store the information into ${GEM_LOCAL_INFO}
61
- EXECUTE_PROCESS(COMMAND ${GEM_EXECUTABLE} content ${Gem_NAME} OUTPUT_VARIABLE GEM_LOCAL_INFO)
62
-
63
- if("${GEM_LOCAL_INFO}" STREQUAL "")
64
- MESSAGE(FATAL_ERROR "No local gem found. Check your GEM_HOME setting!")
65
- else()
66
- set(_library_NAME_PATTERN lib${Gem_NAME}.a
67
- lib${Gem_NAME}.so
68
- lib${Gem_NAME}.dylib
69
- ${Gem_NAME}.a
70
- ${Gem_NAME}.so
71
- ${Gem_NAME}.dylib
72
- .*.a
73
- .*.so
74
- .*.dylib
75
- )
76
-
77
- set(_header_SUFFIX_PATTERN
78
- .h
79
- .hh
80
- .hpp
81
- )
82
-
83
- # Create a list from the output results of the gem command
84
- string(REPLACE "\n" ";" GEM_CONTENT_LIST ${GEM_LOCAL_INFO})
85
- foreach(_gem_CONTENT_PATH ${GEM_CONTENT_LIST})
86
-
87
- # Convert so that only '/' Unix path separator are being using
88
- # needed to do proper regex matching
89
- FILE(TO_CMAKE_PATH ${_gem_CONTENT_PATH} gem_CONTENT_PATH)
90
-
91
- # Identify library -- checking for a library in the gems 'lib' (sub)directory
92
- # Search for an existing library, but only within the gems folder
93
- foreach(_library_NAME ${_library_NAME_PATTERN})
94
- STRING(REGEX MATCH ".*${Gem_NAME}.*/lib/.*${_library_NAME}$" GEM_PATH_INFO "${gem_CONTENT_PATH}")
95
- if(NOT "${GEM_PATH_INFO}" STREQUAL "")
96
- list(APPEND GEM_LIBRARIES ${GEM_PATH_INFO})
97
- break()
98
- endif()
99
- endforeach()
100
-
101
- # Identify headers
102
- # Checking for available headers in an include directory
103
- foreach(_header_PATTERN ${_header_SUFFIX_PATTERN})
104
- STRING(REGEX MATCH ".*${Gem_NAME}.*/include/.*${_header_PATTERN}$" GEM_PATH_INFO "${gem_CONTENT_PATH}")
105
- if(NOT "${GEM_PATH_INFO}" STREQUAL "")
106
- STRING(REGEX REPLACE "(.*${Gem_NAME}.*/include/).*${_header_PATTERN}$" "\\1" GEM_PATH_INFO "${gem_CONTENT_PATH}")
107
- list(APPEND GEM_INCLUDE_DIRS ${GEM_PATH_INFO})
108
- break()
109
- endif()
110
- endforeach()
111
- endforeach()
112
-
113
- # Compact the lists
114
- if(DEFINED GEM_LIBRARIES)
115
- LIST(REMOVE_DUPLICATES GEM_LIBRARIES)
116
- endif()
117
- if(DEFINED GEM_INCLUDE_DIRS)
118
- LIST(REMOVE_DUPLICATES GEM_INCLUDE_DIRS)
119
- endif()
120
- endif()
121
- else(NOT GEM_OS_PKG)
122
- pkg_check_modules(GEM_PKG ${Gem_NAME})
123
- set(GEM_INCLUDE_DIRS ${GEM_PKG_INCLUDE_DIRS})
124
- set(GEM_LIBRARIES ${GEM_PKG_LIBRARIES} ${GEM_PKG_STATIC_LIBRARIES})
125
- list(APPEND GEM_LIBRARIES ${GEM_PKG_LDFLAGS} ${GEM_PKG_STATIC_LDFLAGS})
126
- list(APPEND GEM_LIBRARIES ${GEM_PKG_LDFLAGS_OTHER} ${GEM_PKG_STATIC_LDFLAGS_OTHER})
127
-
128
- if(GEM_DEBUG)
129
- message(STATUS "GEM_OS_PKG is defined")
130
- message(STATUS "GEM_INCLUDE_DIRS ${GEM_INCLUDE_DIRS}")
131
- message(STATUS "GEM_STATIC_LIBRARY_DIRS ${GEM_PKG_STATIC_LIBRARY_DIRS}")
132
- message(STATUS "GEM_LIBRARY_DIRS ${GEM_PKG_STATIC_LIBRARY_DIRS}")
133
- message(STATUS "GEM_STATIC_LIBRARIES ${GEM_PKG_STATIC_LIBRARIES}")
134
- message(STATUS "GEM_LIBRARIES ${GEM_LIBRARIES}")
135
- endif()
136
- endif()
137
-
138
- if("${GEM_LIBRARIES}" STREQUAL "")
139
- set(GEM_FOUND FALSE)
140
- else()
141
- MESSAGE(STATUS "Gem: ${Gem_NAME} found")
142
- endif()
143
-
144
- if(GEM_DEBUG)
145
- message(STATUS "${Gem_NAME} library dir: ${GEM_LIBRARIES}")
146
- message(STATUS "${Gem_NAME} include dir: ${GEM_INCLUDE_DIRS}")
147
- endif()
148
-
149
- if(Gem_FIND_REQUIRED)
150
- if(NOT GEM_FOUND)
151
- MESSAGE(FATAL_ERROR "Gem: ${Gem_NAME} could not be found")
152
- endif()
153
- endif()
154
- endforeach()
155
-
data/ext/src/rbind.pc.in DELETED
@@ -1,11 +0,0 @@
1
- prefix=@CMAKE_INSTALL_PREFIX@
2
- exec_prefix=@CMAKE_INSTALL_PREFIX@
3
- libdir=${prefix}/lib
4
- includedir=${prefix}/include
5
-
6
- Name: @PROJECT_NAME@
7
- Description: @PROJECT_DESCRIPTION@
8
- Version: @PROJECT_VERSION@
9
- Requires: opencv
10
- Libs: -L${libdir} -l@PROJECT_NAME@
11
- Cflags: -I${includedir}