|
|
(50 intermediate revisions by one user not shown) |
Line 1: |
Line 1: |
| {|align="right" | | {|align="right" |
| |- | | |- |
− | |colspan="2" align="center" | [[Image:Hornetseyerf.png|thumb|240px|Hornetseye on [http://rubyforge.org/projects/hornetseye/ RubyForge]]]
| + | |[[Image:AVA-Bristol-2008.jpg|thumb|240px|[http://vision.eng.shu.ac.uk/jan/ava-bristol-2008.pdf Poster] for the 2008 [http://hlsweb.dmu.ac.uk/ava/meetings/bristol2008.html AVA meeting] in Bristol]] |
| |- | | |- |
− | |-
| + | |[[Image:Oscon08foils.jpg|240px|thumb|Conference presentation [http://vision.eng.shu.ac.uk/jan/oscon08-foils.pdf Real-time Computer Vision With Ruby] presented at [http://en.oreilly.com/oscon2008/ OSCON 2008]]] |
− | |colspan="2" align="center" | [[Image:Oscon08foils.jpg|240px|thumb|Conference presentation [http://vision.eng.shu.ac.uk/jan/oscon08-foils.pdf Real-time Computer Vision With Ruby] presented at [http://en.oreilly.com/oscon2008/ OSCON 2008]]]
| + | |
− | |-
| + | |
− | |colspan="2" align="center" | [[Image:ICIA08Slide.jpg|240px|thumb|Conference presentation [http://vision.eng.shu.ac.uk/jan/icia08-foils.pdf A Machine Vision Extension for the Ruby Programming Language] presented at [http://www.icia2008.org ICIA 2008]]]
| + | |
− | |-
| + | |
− | |colspan="2" align="center" | [[Image:Mrcrubytem08.jpg|thumb|240px|Seminar presentation [http://vision.eng.shu.ac.uk/jan/mrcrubytem08.pdf Machine vision and device integration with the Ruby Programming Language]]]
| + | |
− | |-
| + | |
− | |colspan="2" align="center" | [[Image:Rubywebcam.jpg|thumb|240px|Screenshot of Linux webcam application written in Ruby]]
| + | |
− | |-
| + | |
− | |<html>
| + | |
− | <div class="thumb tright">
| + | |
− | <div style="width:240px;">
| + | |
− | <embed style="width:240px; height:180px;" id="VideoPlayback" type="application/x-shockwave-flash"
| + | |
− | src="http://vision.eng.shu.ac.uk/jan/flv/flvplayer.swf" width="240" height="180"
| + | |
− | flashvars="file=http://vision.eng.shu.ac.uk/jan/flv/pcarecognition.flv&image=http://vision.eng.shu.ac.uk/jan/flv/pcarecognition.jpg&displayheight=180"
| + | |
− | pluginspage="http://www.macromedia.com/go/getflashplayer"/>
| + | |
− | <div class="thumbcaption">Object recognition by using colour segmentation. Of course the algorithm has its limitations but it is very easy to implement (also available as <a href="http://vision.eng.shu.ac.uk/jan/pcarecognition.avi">8.6 MByte DivX video</a> or on <a href="http://video.google.com/videoplay?docid=8157280827402899141">Google Video</a>)</div>
| + | |
− | </div>
| + | |
− | </div>
| + | |
− | </html>
| + | |
− | |-
| + | |
− | |colspan="2" align="center" | [[Image:Hornetseye.png|240px]]
| + | |
| |- | | |- |
| |} | | |} |
| =Introduction= | | =Introduction= |
| '''[http://www.wedesoft.demon.co.uk/hornetseye-api/ HornetsEye]''' is a Ruby-extension for developing video processing and real-time computer vision software under GNU/Linux offering interfaces to do image- and video-I/O with RMagick, Xine, firewire digital camera, and video for Linux. A new class of unprecedented solutions and a new way of working becomes conceivable when applying a dynamically typed, object-oriented language like Ruby to computer vision. | | '''[http://www.wedesoft.demon.co.uk/hornetseye-api/ HornetsEye]''' is a Ruby-extension for developing video processing and real-time computer vision software under GNU/Linux offering interfaces to do image- and video-I/O with RMagick, Xine, firewire digital camera, and video for Linux. A new class of unprecedented solutions and a new way of working becomes conceivable when applying a dynamically typed, object-oriented language like Ruby to computer vision. |
− |
| |
− | After installation you can use '''HornetsEye''' without having to compile or link anything! You can even develop computer vision
| |
− | algorithms on the command-line using Interactive Ruby (irb). HornetsEye offers image file-I/O, video input, access to webcams and
| |
− | framegrabbers, access to firewire digital cameras, edge detection, corner detection, user-defined filters. It thightly integrates
| |
− | with existing Ruby extensions.
| |
− |
| |
− | '''HornetsEye''' is maybe the first free software project providing a '''solid platform for implementing real-time computer vision software'''
| |
− | in a scripting language. The platform potentially could be used in '''robotic applications''', '''industrial automation''' as well
| |
− | as in '''microscopy''' and the '''life sciences'''.
| |
− |
| |
− | The logo was created using [http://gimp.org/ GIMP] and it shows a honeycomb structure as you would find on an insect's compound eye. A hornet is capable of navigating and detecting objects with the limited resolution of its [http://en.wikipedia.org/wiki/Compound_eye compound eyes].
| |
− |
| |
− | ==Webcam==
| |
− | The [http://www.wedesoft.demon.co.uk/hornetseye-api/files/webcamapp-txt.html Linux webcam application] uses [[HornetsEye]], [http://rubyforge.org/projects/rmagick/ RMagick], and [http://rubyforge.org/projects/korundum/ qt4-ruby] (there also is a [http://www.wedesoft.demon.co.uk/hornetseye-api/files/vfwcamapp-txt.html Windows webcam] already).
| |
− |
| |
− | See [http://www.wedesoft.demon.co.uk/hornetseye-api/files/inputgrey-txt.html Hornetseye homepage] for more examples.
| |
− |
| |
− | ==Phase Correlation==
| |
− | The [http://www.wedesoft.demon.co.uk/hornetseye-api/files/phasecorrelation-txt.html phase correlation example] is an implementation of the [http://en.wikipedia.org/wiki/Phase_correlation phase correlation] for aligning images.
| |
− | The code depends on [[HornetsEye]], [http://rubyforge.org/projects/rmagick/ RMagick] and [http://rubyforge.org/projects/narray/ NArray-fftw3].
| |
− |
| |
− | =Downloads=
| |
− | [[Image:Hornetseye.png|48px]] Check the [http://www.wedesoft.demon.co.uk/hornetseye-api/files/Installation-txt.html installation instructions] on how to obtain and install HornetsEye.
| |
− |
| |
− | =Software Engineering=
| |
− | '''HornetsEye''' brings the functionality of existing powerful free software packages into Ruby. '''HornetsEye''' also tries to make existing Ruby extension operate with each other to enable the development of novel solutions:
| |
− | # [[Image:Qt logo.png|30px]] '''Qt4-QtRuby''', [[Image:Kde.png|30px]] '''Korundum''': [http://rubyforge.org/projects/korundum/ QtRuby] and [http://developer.kde.org/language-bindings/ruby/ Korundum] can be used to develop graphical user interfaces and desktop applications with [http://trolltech.com/products/qt/ Qt4].
| |
− | # [[Image:Xine logo.png|48px]] '''Xine''': Using [http://www.xinehq.de/ Xine] one can read virtually any video file and it is even possible to read streaming videos.
| |
− | # [[Image:Mplayerlogo.png|38px]] '''MPlayer''': [http://www.mplayerhq.hu/ MPlayer] is a player which can be used to read video files under GNU/Linux as well as Microsoft Windows.
| |
− | # [[Image:Tanaka.png|30px]] '''NArray''': Masahiro Tanaka's [http://narray.rubyforge.org/ NArray] is an implementation of n-dimensional arrays for Ruby.
| |
− | # [[Image:Fftw logo.gif|50px]] '''FFTW'''. The [http://www.fftw.org/ fftw]-library can is maybe the fastest library for performing discrete Fourier transforms. It can be invoked by using Masahiro Tanaka's [http://narray.rubyforge.org/ fftw3] extension.
| |
− | # [[Image:RMagick.png|80px]] '''RMagick''': The [http://rmagick.rubyforge.org/ RMagick] Ruby-extension allows to use the powerful [http://www.imagemagick.org/Magick++/ Magick++] library in Ruby for loading and saving images.
| |
− | # [[Image:Coriander.png|30px]] '''libdc1394''': Using [http://damien.douxchamps.net/ieee1394/libdc1394/ libdc1394] one can make use of a large choice of firewire digital cameras.
| |
− | # [[Image:OpenEXR.jpg|30px]] '''OpenEXR''': The [http://www.openexr.org/ OpenEXR library] is used for saving and loading [http://en.wikipedia.org/wiki/High_dynamic_range_imaging high dynamic range] images.
| |
− | # [[Image:C--boost logo.gif|80px]] '''Boost''': The [http://www.boost.org/ Boost Library] offers smart pointers to do exception safe programming, multi-dimensional arrays, template meta-programming, abstract data types for linear algebra and many other programming concepts. The Boost library is going to be part of a future C++ standard.
| |
− | # [[Image:Stl logo.gif|30px]] '''STL''': The software makes use of the [http://www.sgi.com/tech/stl/ Standard Template Library]
| |
− | # [[Image:Ruby.png|30px]] [http://www.ruby-lang.org/ Ruby] programming language
| |
− | # [[Image:Gnu-arch logo.png|30px]] '''gnu-arch''': [http://www.gnu.org/software/gnu-arch/ gnu-arch] is being used for version control.
| |
− | # [[Image:Gcc logo.png|30px]] '''Gcc''': [http://www.gnu.org/software/gcc/ gcc] is the C++ compiler of the GNU project.
| |
− | # [[Image:Gnu-head.jpg|35px]] '''autoconf''', '''automake''' and '''make''': [http://www.gnu.org/software/make/ make], [http://www.gnu.org/software/autoconf/ autoconf] and [http://www.gnu.org/software/automake/ automake] are used to configure and perform the build of the software on various distributions of the Linux operating system.
| |
− | # [[Image:Naturaldocs.png|80px]] '''Natural Docs''': [http://www.naturaldocs.org/ Natural Docs] is used to create the HTML documentation.
| |
| | | |
| =See Also= | | =See Also= |
− | * [[Image:Mimasanim.gif|40px]] [[Mimas]] | + | * [[Interactive Presentation Software]] |
− | * [[Computer Vision Software]] | + | * [[Just-in-time compiler]] |
| + | * [[Lucas-Kanade tracker]] |
| * [[Hypercomplex Wavelets]] | | * [[Hypercomplex Wavelets]] |
− | * [[Lucas-Kanade tracker]]
| |
| * [[Qt4-QtRuby installer for Microsoft Windows]] | | * [[Qt4-QtRuby installer for Microsoft Windows]] |
− | * [[Image:New.gif]] [[Interactive Presentation Software]] | + | * [[TEM vision software]] |
| + | * [[Image:Mimasanim.gif|40px]] [[Mimas]] |
| | | |
| =External Links= | | =External Links= |
− | * [[Image:Hornetseye.png|48px]] [http://www.wedesoft.demon.co.uk/hornetseye-api/ Hornetseye homepage] | + | * [[Image:Hornetseye.png|48px]] [http://www.wedesoft.demon.co.uk/hornetseye-api/ HornetsEye homepage] |
− | * [[Image:Rubyforge.png|75px]] [http://rubyforge.org/projects/hornetseye/ Hornetseye at Rubyforge] | + | * [[Image:Rubyforge.png|75px]] [http://rubyforge.org/projects/hornetseye/ HornetsEye at Rubyforge] |
− | * [[Image:Sourceforge.png|58px]] [http://sourceforge.net/projects/hornetseye/ Hornetseye at Sourceforge] | + | * [[Image:Sourceforge.png|58px]] [http://sourceforge.net/projects/hornetseye/ HornetsEye at Sourceforge] |
| * [[Image:Swig.png|48px]] [http://www.swig.org/ SWIG] (Simplified Wrapper and Interface Generator) | | * [[Image:Swig.png|48px]] [http://www.swig.org/ SWIG] (Simplified Wrapper and Interface Generator) |
− | * [http://www.csie.ntnu.edu.tw/~bbailey/Moments%20in%20IP.htm Moments in image processing]
| + | |
− | * [http://vision.eng.shu.ac.uk/jan/mrcrubytem08.pdf Machine vision and device integration with the Ruby Programming Language] (MRC seminar)
| + | {{AddThis}} |
− | * [[Image:New.gif]] J. Wedekind, B. P. Amavasai, K. Dutton, M. Boissenin: [http://digitalcommons.shu.ac.uk/mmvl_papers/2/ A Machine Vision Extension for the Ruby Programming Language] (also see [http://vision.eng.shu.ac.uk/jan/icia08-foils.pdf foils (PDF)])
| + | |
− | * [[Image:New.gif]] [http://en.oreilly.com/oscon2008/public/schedule/detail/2471 Computer Vision with Ruby] presented at OSCON 2008 (also see [http://vision.eng.shu.ac.uk/jan/oscon08-foils.pdf foils (PDF)])
| + | |
| | | |
| [[Category:Projects]] | | [[Category:Projects]] |
| [[Category:Nanorobotics]] | | [[Category:Nanorobotics]] |