blImage — An image data structure based on shared_ptr and IplImage*

This entry is part 1 of 17 in the series blImageAPI -- BarbatoLabs Image API

This entry is part 1 of 17 in the series blImageAPI — BarbatoLabs Image API Introduction Back in the good old days of OpenCV 1.1 and earlier, the main image structure used throughout their algorithms was IplImage. Playing with IplImage requires skillful manipulation of data in memory, and thus makes it…

Continue reading

blCaptureDevice — A simple data structure to handle video sources in OpenCV

This entry is part 2 of 17 in the series blImageAPI -- BarbatoLabs Image API

This entry is part 2 of 17 in the series blImageAPI — BarbatoLabs Image API Introduction When it comes to OpenCV, dealing with images and videos means dealing with finicky pointers.  This, as could be attested by all who have played with OpenCV before, can quickly lead to “out of memory”…

Continue reading

blImageOperators — Overloaded operators and functions to use blImage as a generic matrix in c++

This entry is part 3 of 17 in the series blImageAPI -- BarbatoLabs Image API

This entry is part 3 of 17 in the series blImageAPI — BarbatoLabs Image API Introduction blImage makes working with images in OpenCV a snap.  Automatic garbage collection, automatic type conversion and 100% compatibility with opencv algorithms, all that accomplished with the help of boost::shared_ptr and template meta-programming. Now, to…

Continue reading

blImageAPI — separate an opencv image into its individual channels

This entry is part 4 of 17 in the series blImageAPI -- BarbatoLabs Image API

This entry is part 4 of 17 in the series blImageAPI — BarbatoLabs Image API Introduction I have created the blImageAPI to make life easier when it comes to programming images and videos. In this article I present a couple of functions that make it a snap to play with…

Continue reading

blImageAPI — Take the negative of an opencv image, no matter what the depth is

This entry is part 5 of 17 in the series blImageAPI -- BarbatoLabs Image API

This entry is part 5 of 17 in the series blImageAPI — BarbatoLabs Image API Introduction I have created the blImageAPI to make life easier when it comes to programming images and videos. In this article I present a couple of functions that make it a snap to take the…

Continue reading

blImageAPI — Convert an opencv image from RGB to HSV color space no matter what the depth is

This entry is part 6 of 17 in the series blImageAPI -- BarbatoLabs Image API

This entry is part 6 of 17 in the series blImageAPI — BarbatoLabs Image API Introduction When we start playing with images, dealing with colors becomes an inevitibility. Over the past hundreds of years, different ways to look at colors have evolved in the form of color spaces. These color…

Continue reading

blMemStorage — A simple data structure to wrap OpenCV’s CvMemStorage with shared_ptr

This entry is part 7 of 17 in the series blImageAPI -- BarbatoLabs Image API

This entry is part 7 of 17 in the series blImageAPI — BarbatoLabs Image API Introduction As part of the blImageAPI series that we’re running, in this short article, we present a simple data structure used to wrap OpenCV’s CvMemStorage with boost::shared_ptr. The use of boost::shared_ptr allows for automatic garbage collection and…

Continue reading

blTexture — Load an IplImage into an opengl texture and create webcam and video textures using the blImageAPI

This entry is part 8 of 17 in the series blImageAPI -- BarbatoLabs Image API

This entry is part 8 of 17 in the series blImageAPI — BarbatoLabs Image API Introduction Today I introduce a simple class that will help us load IplImage images into opengl textures. This simple class, as I will continue to show you in later posts, provides us with a very…

Continue reading

blImageBlending — Emulating photoshop’s blending modes in opencv

This entry is part 9 of 17 in the series blImageAPI -- BarbatoLabs Image API

This entry is part 9 of 17 in the series blImageAPI — BarbatoLabs Image API Introduction When playing with images or videos, we often need to blend multiple images together, whether it’s for changing the color of an object, or if we’re experimenting with some fancy masking, blending is our…

Continue reading

blImagePencilSketch — A quick algorithm to turn an image or video into pencil sketch using opencv

This entry is part 10 of 17 in the series blImageAPI -- BarbatoLabs Image API

This entry is part 10 of 17 in the series blImageAPI — BarbatoLabs Image API Introduction This is a very short post showing how we can turn an image or a video into a pencil sketch using the blImageAPI. The algorithm The idea is simple and looks as follows: Read…

Continue reading