mirror of
https://github.com/ruby-opencv/ruby-opencv
synced 2023-03-27 23:22:12 -04:00
Merge branch 'master' into documentation
Conflicts: Gemfile Rakefile
This commit is contained in:
commit
e1be97db7a
10 changed files with 294 additions and 238 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -13,7 +13,7 @@ GRTAGS
|
|||
GSYMS
|
||||
GTAGS
|
||||
OpenCV-*
|
||||
ruby-*
|
||||
ruby-*.*.*
|
||||
ext/opencv/test.txt
|
||||
pkg/
|
||||
doc/
|
||||
|
|
120
DEVELOPERS_NOTE.md
Normal file
120
DEVELOPERS_NOTE.md
Normal file
|
@ -0,0 +1,120 @@
|
|||
# DEVELOPER'S NOTE
|
||||
|
||||
## Requirement to develop ruby-opencv
|
||||
|
||||
* OpenCV
|
||||
* Git
|
||||
* Microsoft Visual C++ (for mswin32)
|
||||
* <http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express>
|
||||
* MinGW and MSYS (for mingw32)
|
||||
* gcc, g++ and MSYS are needed.
|
||||
* <http://www.mingw.org>
|
||||
* Some gems (see Gemfile)
|
||||
* [bundler](https://github.com/carlhuda/bundler/)
|
||||
* [hoe](https://github.com/seattlerb/hoe)
|
||||
* [hoe-gemspec](https://github.com/flavorjones/hoe-gemspec)
|
||||
* [rake-compiler](https://github.com/luislavena/rake-compiler)
|
||||
* [gem-compile](https://github.com/frsyuki/gem-compile)
|
||||
|
||||
|
||||
## Create ruby-opencv gem
|
||||
Run the following commands.
|
||||
When you use mingw32, use **MSYS console**, or when you use mswin32,
|
||||
use [**Visual Studio Command Prompt**](http://msdn.microsoft.com/en-us/library/ms229859.aspx)
|
||||
instead of cmd.exe.
|
||||
|
||||
```
|
||||
$ git clone git://github.com/ruby-opencv/ruby-opencv.git
|
||||
$ cd ruby-opencv
|
||||
$ git checkout master
|
||||
$ bundle install
|
||||
$ git ls-files > Manifest.txt
|
||||
$ rake gem:spec
|
||||
$ rake gem
|
||||
```
|
||||
**ruby-opencv-x.y.z.gem** will be created in pkg/ directory.
|
||||
|
||||
To create pre-build binaries, run the following commands in Windows.
|
||||
|
||||
```
|
||||
$ cd pkg
|
||||
$ gem compile ruby-opencv-*.gem
|
||||
```
|
||||
|
||||
**ruby-opencv-x.y.z-x86-mingw32.gem** will be created when you use mingw32, or
|
||||
**ruby-opencv-x.y.z-x86-mswin32.gem** when you use mswin32.
|
||||
|
||||
|
||||
## Install ruby-opencv manually
|
||||
### Linux/Mac
|
||||
|
||||
```
|
||||
$ git clone git://github.com/ruby-opencv/ruby-opencv.git
|
||||
$ cd ruby-opencv
|
||||
$ git checkout master
|
||||
$ ruby extconf.rb --with-opencv-dir=/path/to/opencvdir
|
||||
$ make
|
||||
$ make install
|
||||
```
|
||||
|
||||
Note: **/path/to/opencvdir** is the directory where you installed OpenCV.
|
||||
|
||||
|
||||
### Windows (mswin32)
|
||||
|
||||
Run the following commands on [**Visual Studio Command Prompt**](http://msdn.microsoft.com/en-us/library/ms229859.aspx).
|
||||
|
||||
```
|
||||
$ git clone git://github.com/ruby-opencv/ruby-opencv.git
|
||||
$ cd ruby-opencv
|
||||
$ git checkout master
|
||||
$ ruby extconf.rb --with-opencv-dir=C:\path\to\opencvdir\install # for your own built OpenCV library
|
||||
$ nmake
|
||||
$ nmake install
|
||||
```
|
||||
|
||||
To use pre-built OpenCV libraries, set the following option to extconf.rb.
|
||||
|
||||
```
|
||||
$ ruby extconf.rb --with-opencv-include=C:\path\to\opencvdir\build\include --with-opencv-lib=C:\path\to\opencvdir\build\x86\vc10\lib
|
||||
```
|
||||
|
||||
|
||||
### Windows (mingw32)
|
||||
|
||||
Run the following commands on **MSYS console**.
|
||||
|
||||
```
|
||||
$ git clone git://github.com/ruby-opencv/ruby-opencv.git
|
||||
$ cd ruby-opencv
|
||||
$ git checkout master
|
||||
$ ruby extconf.rb --with-opencv-dir=/C/path/to/opencvdir/install # for your own built OpenCV library
|
||||
$ make
|
||||
$ make install
|
||||
```
|
||||
|
||||
To use pre-built OpenCV libraries, set the following option to extconf.rb.
|
||||
|
||||
```
|
||||
$ ruby extconf.rb --with-opencv-include=/c/path/to/opencvdir/build/include --with-opencv-lib=/c/path/to/opencvdir/build/x86/mingw/lib
|
||||
```
|
||||
|
||||
|
||||
## Run tests
|
||||
|
||||
To run all tests, run **test/runner.rb**
|
||||
|
||||
```
|
||||
$ cd ruby-opencv/test
|
||||
$ ruby runner.rb
|
||||
```
|
||||
|
||||
To run tests of the specified function, run a specific test with --name option.
|
||||
|
||||
The following sample runs tests for CvMat#initialize
|
||||
|
||||
```
|
||||
$ cd ruby-opencv/test
|
||||
$ ruby test_cvmat.rb --name=test_initialize
|
||||
```
|
||||
|
11
Gemfile
11
Gemfile
|
@ -1,6 +1,9 @@
|
|||
source :gemcutter
|
||||
|
||||
gem "hoe"
|
||||
gem "hoe-gemspec"
|
||||
gem "rake-compiler"
|
||||
gem "yard"
|
||||
group :development do
|
||||
gem "hoe"
|
||||
gem "hoe-gemspec"
|
||||
gem "rake-compiler"
|
||||
gem "gem-compile"
|
||||
end
|
||||
|
||||
|
|
13
Manifest.txt
13
Manifest.txt
|
@ -1,9 +1,10 @@
|
|||
.gitignore
|
||||
DEVELOPERS_NOTE.md
|
||||
Gemfile
|
||||
History.txt
|
||||
License.txt
|
||||
Manifest.txt
|
||||
README.rdoc
|
||||
README.md
|
||||
Rakefile
|
||||
examples/alpha_blend.rb
|
||||
examples/box.png
|
||||
|
@ -22,6 +23,12 @@ examples/inpaint.rb
|
|||
examples/lenna-rotated.jpg
|
||||
examples/lenna.jpg
|
||||
examples/match_kdtree.rb
|
||||
examples/matching_to_many_images.rb
|
||||
examples/matching_to_many_images/query.png
|
||||
examples/matching_to_many_images/train/1.png
|
||||
examples/matching_to_many_images/train/2.png
|
||||
examples/matching_to_many_images/train/3.png
|
||||
examples/matching_to_many_images/train/trainImages.txt
|
||||
examples/paint.rb
|
||||
examples/snake.rb
|
||||
examples/stuff.jpg
|
||||
|
@ -126,7 +133,7 @@ images/CvMat_sobel.png
|
|||
images/CvMat_sub_rect.png
|
||||
images/CvSeq_relationmap.png
|
||||
images/face_detect_from_lena.jpg
|
||||
opencv.gemspec
|
||||
ruby-opencv.gemspec
|
||||
test/helper.rb
|
||||
test/runner.rb
|
||||
test/samples/airplane.jpg
|
||||
|
@ -144,6 +151,7 @@ test/samples/blank7.jpg
|
|||
test/samples/blank8.jpg
|
||||
test/samples/blank9.jpg
|
||||
test/samples/cat.jpg
|
||||
test/samples/chessboard.jpg
|
||||
test/samples/contours.jpg
|
||||
test/samples/fruits.jpg
|
||||
test/samples/haarcascade_frontalface_alt.xml.gz
|
||||
|
@ -192,6 +200,7 @@ test/test_cvmat.rb
|
|||
test/test_cvmat_drawing.rb
|
||||
test/test_cvmat_dxt.rb
|
||||
test/test_cvmat_imageprocessing.rb
|
||||
test/test_cvmat_matching.rb
|
||||
test/test_cvmoments.rb
|
||||
test/test_cvpoint.rb
|
||||
test/test_cvpoint2d32f.rb
|
||||
|
|
98
README.md
Normal file
98
README.md
Normal file
|
@ -0,0 +1,98 @@
|
|||
# ruby-opencv
|
||||
|
||||
An OpenCV wrapper for Ruby.
|
||||
|
||||
* Web site: <https://github.com/ruby-opencv/ruby-opencv>
|
||||
* Ruby 1.8.7, 1.9.3 and OpenCV 2.4.3 are supported.
|
||||
|
||||
## Requirement
|
||||
|
||||
* OpenCV <http://opencv.org/>
|
||||
* [Download](http://sourceforge.net/projects/opencvlibrary/)
|
||||
* [Install guide](http://docs.opencv.org/doc/tutorials/introduction/table_of_content_introduction/table_of_content_introduction.html#table-of-content-introduction)
|
||||
|
||||
## Install
|
||||
### Linux/Mac
|
||||
1. Install [OpenCV](http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/)
|
||||
2. Install ruby-opencv
|
||||
|
||||
```
|
||||
$ gem install ruby-opencv -- --with-opencv-dir=/path/to/opencvdir
|
||||
```
|
||||
|
||||
Note: **/path/to/opencvdir** is the directory where you installed OpenCV.
|
||||
|
||||
|
||||
### Windows
|
||||
You can use pre-build binary for Windows (mswin32, mingw32).
|
||||
|
||||
1. Install [OpenCV](http://sourceforge.net/projects/opencvlibrary/files/opencv-win/)
|
||||
2. Set path to OpenCV libraries. When you installed OpenCV to **C:\opencv**, add **C:\opencv\build\x86\vc10\bin (for mswin32)** or **C:\opencv\build\x86\mingw\bin (for mingw32)** to the systems path.
|
||||
3. Install ruby-opencv
|
||||
|
||||
```
|
||||
$ gem install ruby-opencv
|
||||
```
|
||||
|
||||
## Sample code
|
||||
### Load and Display an Image
|
||||
|
||||
A sample to load and display an image. An equivalent code of [this tutorial](http://docs.opencv.org/doc/tutorials/introduction/display_image/display_image.html#display-image).
|
||||
|
||||
```ruby
|
||||
require 'opencv'
|
||||
include OpenCV
|
||||
|
||||
if ARGV.size == 0
|
||||
puts "Usage: ruby #{__FILE__} ImageToLoadAndDisplay"
|
||||
exit
|
||||
end
|
||||
|
||||
image = nil
|
||||
begin
|
||||
image = CvMat.load(ARGV[0], CV_LOAD_IMAGE_COLOR) # Read the file.
|
||||
rescue
|
||||
puts 'Could not open or find the image.'
|
||||
exit
|
||||
end
|
||||
|
||||
window = GUI::Window.new('Display window') # Create a window for display.
|
||||
window.show(image) # Show our image inside it.
|
||||
GUI::wait_key # Wait for a keystroke in the window.
|
||||
```
|
||||
|
||||
### Face Detection
|
||||
|
||||
A sample to detect faces from an image.
|
||||
|
||||
```ruby
|
||||
require 'opencv'
|
||||
include OpenCV
|
||||
|
||||
if ARGV.length < 2
|
||||
puts "Usage: ruby #{__FILE__} source dest"
|
||||
exit
|
||||
end
|
||||
|
||||
data = './data/haarcascades/haarcascade_frontalface_alt.xml'
|
||||
detector = CvHaarClassifierCascade::load(data)
|
||||
image = CvMat.load(ARGV[0])
|
||||
detector.detect_objects(image).each do |region|
|
||||
color = CvColor::Blue
|
||||
image.rectangle! region.top_left, region.bottom_right, :color => color
|
||||
end
|
||||
|
||||
image.save_image(ARGV[1])
|
||||
window = GUI::Window.new('Face detection')
|
||||
window.show(image)
|
||||
GUI::wait_key
|
||||
```
|
||||
|
||||
For more samples, see examples/*.rb
|
||||
|
||||
## LICENSE:
|
||||
|
||||
The BSD Liscense
|
||||
|
||||
see LICENSE.txt
|
||||
|
149
README.rdoc
149
README.rdoc
|
@ -1,149 +0,0 @@
|
|||
= OpenCV
|
||||
|
||||
The initial Open Computer Vision library was originally developed by Intel
|
||||
Corporation. Recent development has been headed by Willow Garage, Inc.
|
||||
|
||||
* OpenCV project home http://opencv.willowgarage.com/wiki/
|
||||
* Download http://sourceforge.net/projects/opencvlibrary/
|
||||
* Ruby/OpenCV original author's web page http://blueruby.mydns.jp/opencv
|
||||
|
||||
== DESCRIPTION:
|
||||
|
||||
OpenCV wrapper for Ruby
|
||||
|
||||
== FEATURES/PROBLEMS:
|
||||
|
||||
* Some OpenCV functions are wrapped.
|
||||
* Ruby 1.8.7, 1.9.3 and OpenCV 2.4.3 are supported.
|
||||
|
||||
== DEPENDENCIES:
|
||||
|
||||
* OpenCV (required)
|
||||
* Ruby/OpenCV relies on the OpenCV library http://opencv.willowgarage.com/wiki/InstallGuide
|
||||
|
||||
* Microsoft Visual C++ (for mswin32)
|
||||
* http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
|
||||
|
||||
* MinGW and MSYS (for mingw32)
|
||||
* gcc, g++ and MSYS are needed.
|
||||
* http://www.mingw.org
|
||||
|
||||
|
||||
== INSTALLATION:
|
||||
=== Install Ruby/OpenCV manually
|
||||
==== Unix/Linux/Mac
|
||||
|
||||
$ git clone git://github.com/ruby-opencv/ruby-opencv.git
|
||||
$ cd ruby-opencv
|
||||
$ git checkout master # for OpenCV 2.4 or later. To use OpenCV 2.3, type "git checkout OpenCV_2.3" instead
|
||||
$ ruby extconf.rb --with-opencv-dir=/path/to/opencvdir
|
||||
$ make
|
||||
$ make install
|
||||
|
||||
==== Windows (mswin32)
|
||||
|
||||
Use *nmake* instead of *make*.
|
||||
|
||||
$ git clone git://github.com/ruby-opencv/ruby-opencv.git
|
||||
$ cd ruby-opencv
|
||||
$ git checkout master # for OpenCV 2.4 or later. To use OpenCV 2.3, type "git checkout OpenCV_2.3" instead
|
||||
$ ruby extconf.rb --with-opencv-dir=C:\path\to\opencvdir\install # for your own built OpenCV library
|
||||
$ nmake
|
||||
$ nmake install
|
||||
|
||||
To use pre-built OpenCV libraries, set the following option to extconf.rb.
|
||||
|
||||
$ ruby extconf.rb --with-opencv-include=C:\path\to\opencvdir\build\include --with-opencv-lib=C:\path\to\opencvdir\build\x86\vc10\lib
|
||||
|
||||
|
||||
==== Windows (mingw32)
|
||||
|
||||
Type the following commands on the *MSYS* *console*.
|
||||
|
||||
$ git clone git://github.com/ruby-opencv/ruby-opencv.git
|
||||
$ cd ruby-opencv
|
||||
$ git checkout master # for OpenCV 2.4 or later. To use OpenCV 2.3, type "git checkout OpenCV_2.3" instead
|
||||
$ ruby extconf.rb --with-opencv-dir=/C/path/to/opencvdir/install # for your own built OpenCV library
|
||||
$ make
|
||||
$ make install
|
||||
|
||||
To use pre-built OpenCV libraries, set the following option to extconf.rb.
|
||||
|
||||
$ ruby extconf.rb --with-opencv-include=/c/path/to/opencvdir/build/include --with-opencv-lib=/c/path/to/opencvdir/build/x86/mingw/lib
|
||||
|
||||
|
||||
==== NOTE:
|
||||
|
||||
*/path/to/opencvdir* is the path you installs OpenCV library (default: /usr/local).
|
||||
|
||||
For example, if you install OpenCV library to */opt/local/* like:
|
||||
|
||||
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/opt/local/ ./OpenCV-2.4.2
|
||||
$ make
|
||||
$ make install
|
||||
|
||||
Install Ruby/OpenCV with the following command:
|
||||
|
||||
$ ruby extconf.rb --with-opencv-dir=/opt/local
|
||||
$ make
|
||||
$ make install
|
||||
|
||||
|
||||
=== Create Ruby/OpenCV Gem
|
||||
You can also install this library creating a gem like:
|
||||
|
||||
$ git clone git://github.com/ruby-opencv/ruby-opencv.git
|
||||
$ cd ruby-opencv
|
||||
$ git checkout master # for OpenCV 2.4 or later. To use OpenCV 2.3, type "git checkout OpenCV_2.3" instead
|
||||
$ bundle install
|
||||
$ rake gem
|
||||
$ gem install pkg/opencv-*.gem -- --with-opencv-dir=/path/to/opencvdir
|
||||
|
||||
To add ruby-opencv in your Gemfile:
|
||||
|
||||
$ echo -e "\n"'gem "opencv", :git => "https://github.com/ruby-opencv/ruby-opencv"' >> Gemfile
|
||||
$ bundle config build.opencv --with-opencv-dir=/path/to/opencvdir
|
||||
$ bundle install # or bundle update
|
||||
|
||||
== SYNOPSIS:
|
||||
=== Show Image using GUI Component
|
||||
|
||||
#!/usr/bin/env ruby
|
||||
require "opencv"
|
||||
|
||||
image = OpenCV::IplImage.load("sample.jpg")
|
||||
window = OpenCV::GUI::Window.new("preview")
|
||||
window.show(image)
|
||||
OpenCV::GUI::wait_key
|
||||
|
||||
=== Face Detection
|
||||
|
||||
Here is a sample face detection program that doesn't rely on the GUI components.
|
||||
In order for this to work you must copy the OpenCV haarcascades data into a
|
||||
subfolder called data.
|
||||
|
||||
#!/usr/bin/env ruby
|
||||
require "opencv"
|
||||
|
||||
if ARGV.length < 2
|
||||
puts "Usage: your_app_name source dest"
|
||||
exit
|
||||
end
|
||||
|
||||
data = "./data/haarcascades/haarcascade_frontalface_alt.xml"
|
||||
detector = OpenCV::CvHaarClassifierCascade::load(data)
|
||||
image = OpenCV::IplImage.load(ARGV[0])
|
||||
detector.detect_objects(image).each do |region|
|
||||
color = OpenCV::CvColor::Blue
|
||||
image.rectangle! region.top_left, region.bottom_right, :color => color
|
||||
end
|
||||
image.save_image(ARGV[1])
|
||||
|
||||
For more samples, see examples/*.rb
|
||||
|
||||
== LICENSE:
|
||||
|
||||
The BSD Liscense
|
||||
|
||||
see LICENSE.txt
|
||||
|
51
Rakefile
51
Rakefile
|
@ -1,57 +1,32 @@
|
|||
# -*- ruby -*-
|
||||
# -*- mode: ruby; coding: utf-8-unix -*-
|
||||
require 'rubygems'
|
||||
require './ext/opencv/lib/opencv/psyched_yaml'
|
||||
require 'hoe'
|
||||
require 'rake/extensiontask'
|
||||
require './ext/opencv/lib/opencv/version'
|
||||
require 'yard'
|
||||
require 'yard/rake/yardoc_task'
|
||||
require File.dirname(__FILE__) + '/yard_extension'
|
||||
|
||||
Hoe.plugin :gemspec
|
||||
|
||||
hoespec = Hoe.spec 'opencv' do |p|
|
||||
p.version = OpenCV::VERSION
|
||||
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
||||
p.description = <<EOF
|
||||
OpenCV wrapper for Ruby
|
||||
EOF
|
||||
p.rubyforge_name = 'opencv'
|
||||
p.developer('lsxi', 'masakazu.yonekura@gmail.com')
|
||||
p.developer('ser1zw', '')
|
||||
p.developer('pcting', 'pcting@gmail.com')
|
||||
hoespec = Hoe.spec 'ruby-opencv' do |s|
|
||||
s.summary = 'OpenCV wrapper for Ruby'
|
||||
s.developer('lsxi', 'masakazu.yonekura@gmail.com')
|
||||
s.developer('ser1zw', 'azariahsawtikes@gmail.com')
|
||||
s.developer('pcting', 'pcting@gmail.com')
|
||||
|
||||
p.need_tar = false
|
||||
p.need_zip = false
|
||||
p.readme_file = 'README.rdoc'
|
||||
p.history_file = 'History.txt'
|
||||
p.spec_extras = {
|
||||
:extensions => %w{extconf.rb}
|
||||
}
|
||||
p.summary = 'OpenCV wrapper for Ruby.'
|
||||
p.test_globs = ['test/test_*.rb']
|
||||
p.clean_globs << 'lib/*.so' << 'tmp'
|
||||
s.readme_file = 'README.md'
|
||||
s.history_file = 'History.txt'
|
||||
s.spec_extras = { :extensions => ['extconf.rb'] }
|
||||
s.test_globs = ['test/test_*.rb']
|
||||
s.urls = ['https://github.com/ruby-opencv/ruby-opencv/']
|
||||
|
||||
p.urls = ['http://blueruby.mydns.jp/opencv']
|
||||
|
||||
p.extra_dev_deps << ['rake-compiler', '>= 0'] << ['hoe-gemspec']
|
||||
s.extra_dev_deps << ['rake-compiler', '>= 0'] << ['hoe-gemspec']
|
||||
|
||||
Rake::ExtensionTask.new('opencv', spec) do |ext|
|
||||
ext.lib_dir = File.join('lib', 'opencv')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
hoespec.spec.files.delete('.gemtest')
|
||||
hoespec.spec.files.delete('ruby-opencv.gemspec')
|
||||
hoespec.spec.files.delete('opencv.gemspec')
|
||||
hoespec.spec.cert_chain = []
|
||||
hoespec.spec.signing_key = nil
|
||||
|
||||
Rake::Task[:test].prerequisites << :compile
|
||||
|
||||
YARD::Rake::YardocTask.new do |t|
|
||||
t.files = ['ext/opencv/*.cpp', 'ext/opencv/lib/*.rb']
|
||||
end
|
||||
|
||||
# vim: syntax=Ruby
|
||||
# vim: syntax=ruby
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
module OpenCV
|
||||
VERSION = '0.0.6'
|
||||
VERSION = '0.0.8'
|
||||
end
|
||||
|
|
File diff suppressed because one or more lines are too long
43
ruby-opencv.gemspec
Normal file
43
ruby-opencv.gemspec
Normal file
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue