ropencv 0.0.12 → 0.0.13
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.
- 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: 
         |