You already know I love libQGLViewer. So here a snippet on how to do AR in a QGLViewer widget. It only requires a couple of tweaks/overloads to the plain vanilla widget setup (using the matrices properly, disable the mouse binding) and it works.
Continue reading "Augmented Reality on libQGLViewer and OpenCV-OpenGL tips [w/code]"
Sharing a simple code snippet for run-length encoding with OpenCV...
Continue reading "Run length encoding in OpenCV [w/code]"
I came across an extremely simple color balancing algorithm here. And I thought I'll quickly transcode it to OpenCV.
Here's the gist:
Continue reading "Simplest Color Balance with OpenCV [w/code]"
Don't you just love scouring the web for a piece of simple code, come up short and then just write it yourself? Well that was the case with NURBS for me. These simple curvy lines, why doesn't anyone just dish out a straightforward implementation of them? Well, now you have it. I wrote a simple renderer that reads a DXF file with NURBS (from Rhino3D) using DXFLIB, although the DXF file format is super easy to parse, and renders them to an image with OpenCV.
Continue reading "Simple NURBS renderer [w/ code]"
Phew. Finally this is working!
I've been confined to OpenGL 2.1 and GLSL 1.2 on the Mac since the Qt OpenGL context will not pick up the core OpenGL profile (a big problem on it's own) and get an OpenGL 3.x and GLSL 1.5... So it's back to old school GL'ing, but anyway some things are working, albeit they have their quirks.
So for all of you battling the OpenGL 2.1 war, here's how I made VAOs work with a very simple shader.
Continue reading "Vertex array objects with shaders on OpenGL 2.1 & GLSL 1.2 [w/code]"
For those of you still interested, I've made the move to using Qt and QGLViewer in the SfM-Toy-Lib project. Getting rid of PCL dependency (I think it's a bloated library), and burying FLTK long in the past, I feel much better about it now.
Get it on github: https://github.com/royshil/SfM-Toy-Library
I wish to report of a number of tweaks and additions to the hand silhouette tracker I posted a while back. First is the ability for it to "snap" to the object using a simple Active Snake method, another is a more advanced resampling technique (the older tracker always resampled after every frame), and of a number of optimizations to increase the speed (tracker now runs at real-time on a single core).
Continue reading "Extending the hand tracker with snakes and optimizations [w/ code, OpenCV]"
For those of you using OpenCV that are looking to upgrade from OpenNI 1.x to the new OpenNI 2.x, here's a bit of code to make life a tiny bit easier. It simply wraps the OpenNI 2.x APIs to expose a simple frame grabber for OpenCV.
Continue reading "OpenNI 2.x and OpenCV interoperability [w/ code]"
So animated gifs are awesome if you're writing a software blog. It saves all this time working with YouTube embeddings and stuff, and your "videos" are stored locally. The simplified FFMPEG writer was before unable to output animated GIFs, but I've tweaked it and now it does. It's also a nice piece of code to learn how to FFMPEG in C.
Continue reading "FFMPEG video writer - now with animated GIF support [w/ code]"
I wanna share some code for 2D curve tracking with a particle filter, implementing the body of work of Tony Heap and David Hogg. These guys presented a relatively easy to implement method for tracking deformable curves through space and change in form using a Hierarchical Point Distribution Models (HPDM), which is another elegant way to store shape priors. Granted, it is not perfect, but for a simple 2D shape like a hand it works pretty good, and rather fast as well.
Let's dive in then,
Continue reading "Curve tracking with a Heap&Hogg's Particle Filters [w/ code, OpenCV]"