1
0
Fork 0
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:
ser1zw 2013-01-27 15:44:33 +09:00
commit e1be97db7a
10 changed files with 294 additions and 238 deletions

2
.gitignore vendored
View file

@ -13,7 +13,7 @@ GRTAGS
GSYMS
GTAGS
OpenCV-*
ruby-*
ruby-*.*.*
ext/opencv/test.txt
pkg/
doc/

120
DEVELOPERS_NOTE.md Normal file
View 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
View file

@ -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

View file

@ -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
View 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

View file

@ -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

View file

@ -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

View file

@ -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

File diff suppressed because one or more lines are too long