Looking for image processing library
I am looking for an image processing library to work with photographs. I just need the basics: contrast, brightness, exposure, white balance, sharpining, green screen and other photography type of functions. Can anyone recommend either a library or maybe some good books?
Oh, the images will need to be printed, too.
I use boost.GIL, it’s part of the Boost collection. it will do what you’ve mentioned and a whole lot more, however the learning curve might be a bit steep depending on how familiar you are with the concepts. Here’s the documentation:
I am no opposed to learning, but time is a concern.
Will the DMA library allow me to simple give it an image and make a white balance adjustment?
I am interested in Boost, but need some good references books to bring me up to speed. Amazon has a lot of books, they are all pricey as far of books so I am seeking recommendations;)
DMA library allow me to simple give it an image and make a white balance adjustment?SamWill the
Surely, yes you can. But …
DMA’s primary development goals were medical images. Applying the same process to a color image is not always the most ideal solution and therefore, at present we don’t recommend it for color images. However, we can customize it for you for color. Color processing is more efficient in an Lab color space and we can add that conversion to our library, if there’s demand for it.
One of the main advantages of DMA is that it’s multi-threaded, handles different color packing on the fly (i.e. R0G0Bo, R1G1B1 or R0R1, G0G1, B0B1) and it handles region of interest and border processing in a transparent fashion. If you want, contact us and we will gladly work with you to further customize the library for your needs.
Also if you have any Photoshop filters with “PIDescriptorParameters” or “Action Descriptor Suite” capabilities (i.e. save filter parameters for later use, and don’t show filter dialog), again, the answer is yes using our Photoshop host SDK.
In the past we have worked with GraphicsMagick library (c++ wrapper for ImageMagick), but this library has (had ?) a great inconvenience, it always uses 32 bits alignment for every input/output image and consume more resources because of this.
Other solution for you could be IIPL (Intel Image Processing Library).
Actually I would love to use IIPL, but when I look at the API’s it is all completely over my head in terms of how I use them to do something as simply as adjust contrast, brightness, exposure, white balance, saturation and maybe one or two more basic tweaks people do with images. I simply don’t know how to map these photography terms into the general image process lexicon.
I would LOVE it if there was a good book out there that helped me connect these terms, that I would be 100% for the IIPL, since I want to run on both Windows and Mac.
Since this is to make money, I don’t have a problem spending some money to get this done. I found this one library that does everything I need and then some:
The problem is that is some serious money! 2999 USD for the development kit and between 55 USD and 99 USD for each runtime, that is way too rich for my blood when I only need about 10% of what it does!
Well, we have all what you need in our image processing library, but as I said in previous post, many of these filters are adapted for medical images, and it works only for grayscale images 8 and 16 bits per channel. Again, contact us if you want more details about our library ( many I had written so far :-) )
As for other proposed solution, that with Photoshop filters, which is the impediment to you ? I think you can find many free filters over the internet with what you need. And with our host sdk (in the near future we’ll have Mac version) you’ll be able to run these filters directly in your application without the need for AdobePhotoshop installed.
Regarding IIPL, I know it involves little image processing knowledge …
GraphicksMagick [graphicsmagick.org] in our project, it’s a more stable ImageMagick [imagemagick.org] fork. Most of the taks you mentioned should be doable with both of them, I did not check the list. GM/IM has a nice C++ interface and it plays quite well with Qt.We use
All this is true, but as I said in previous post, GM/IM always use 32 bits (or 64 for 16 bits per channel) alignment PixelPacket [graphicsmagick.org]. So, for a RGB image you (or GM/IM) need to convert in internal format, then filtering, then you must convert back to your 24 bits image. For real-time processing for example, these extra steps are not so good.
Every graphics library converts an image into an internal representation of pixels. You plain cannot operate on a jpeg directly, as – by the nature of compression – there are no single pixels in it. And every image format utilizes its own packaging of the pixel data. In order to be of general use, the lib must convert the pixels into an internal representation which is independent of the original format.
So you have this drawback with every lib you use. And for the sake of speed I’d bet a penny that every of those libs tries hard to align pixels on word boundaries in order to utilize machine optimization.
Image manipulation is almost never a cheap operation.