RubyFlow : The Ruby Community Blog

Home   Submit   Sign Up   Log In   leaders   Twitter   RSS Feed  

wedesoft — 12 posts

We published a technical report about using generic image processing operations to detect a calibration grid (FigShare). Camera calibration is an important problem in 3D computer vision. However popular algorithms for determining the required correspondences are either semi-automatic (i.e. they require user interaction) or they involve difficult to implement custom algorithms.

Using the HornetsEye Ruby-extension, a robust algorithm for detecting the corners of a calibration grid and assigning the correct correspondences for calibration was implemented (source code here: calibration.rb). The solution is based on generic image processing operations so that it can be implemented quickly. We also present a corner detector based on steerable filters. The corner detector is particularly suited for the problem of detecting the corners of a calibration grid.
My thesis with the title "Efficient Implementations of Machine Vision Algorithms using a Dynamically Typed Programming Language" is now available for download. The thesis shows how the field of machine vision could benefit from the Ruby programming language. The thesis explains the internals of the HornetsEye Ruby-extension.
I made a 30 minutes screencast on how to detect the corners of a chequerboard (detecting the corners of a chequerboard is a prerequisite for camera calibration). The software is implemented using the Gems hornetseye-ffmpeg and hornetseye-xorg (see documentation of HornetsEye libraries) and of course Ruby.
Here's a 7 minutes video podcast on implementing a video player (GNU/Linux) using the Ruby extensions hornetseye-ffmpeg, hornetseye-alsa, and hornetseye-xorg. More ...
David Ungar of Self fame mentions Ruby in his presentation 'Self and Self: Whys and Wherefores' although not in exclusively favourable terms:
❝The broader lesson is that when you design your system, especially when you are designing conceptual systems like languages or mathematical notation, ... don't just make your systems elegant and powerful but know why you are making every design choice. See if you can trace that path from a value to a principle to a practise for every design choice. Too many people design languages cause well I like this feature in Ruby so I put this in and I like this feature here so I put that in and pretty soon you have languages, need I name them, that are just a dog's breakfast of features.❞
In general getting mentioned in a talk of David Ungar is not a bad sign though ;)
Toy robots are becoming increasingly sophisticated. I've started implementing a small Ruby extension to communicate with a Robobuilder Huno (Korean toy robot). Check out the Youtube video of a robotic IRB session (or view the DivX3 video instead if you prefer). More ...
The RubyConf 2009 call for proposals is out.
Microscopy software implemented in Ruby: The RCUK Nanorobotics is finishing soon and here are some fresh demonstration videos. The software was implemented using Ruby-1.8.6, Qt4-QtRuby, HornetsEye, Distributed Ruby, and libJIT.
Guillaume Marceau posted some measurements of speed and code size for different algorithms implemented in various programming languages. The measurements include Ruby, Python, Perl, CMUCL, and YARV.
In many cases it is possible to use Ruby modules instead of alias chains. The overloaded method can be called with super and the class will not end up with a method such as method_without_feature which you are not supposed to call. More...
Slashdot: Twitter on Scala
Slashdot has an article saying that core parts of Twitter are being ported to Scala which is a dialect of Java (e.g. no primitive types).
Update: Tony Arcieri is slapping Twitter for whipping Ruby.
The results of the Ruby Fukuoka Award are out. The first price was awarded to the CLimate Information ToolKit (CLIK).