mirror of
https://github.com/ruby-opencv/ruby-opencv
synced 2023-03-27 23:22:12 -04:00
update documents
This commit is contained in:
parent
656fbfd55f
commit
0e316cdf68
3 changed files with 216 additions and 149 deletions
118
DEVELOPERS_NOTE.md
Normal file
118
DEVELOPERS_NOTE.md
Normal file
|
@ -0,0 +1,118 @@
|
|||
# DEVELOPER'S NOTE
|
||||
|
||||
## Requirement for 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
|
||||
$ 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
|
||||
```
|
||||
|
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/eng/downloads#d-2010-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
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue