What is the actual difference between the GraphicsMagick and the ImageMagick libraries (source to compare list or article needed)?
The GraphicsMagick homepage has a list of differences. But it might be a bit biased. In general, GraphicsMagick seems to be faster (see e.g. this article), with a more stable API and less bugs. Many big websites uses it instead of ImageMagick.
Related
i want to specialize in image and video processing. Which library is better for signal processing, Intel IPP or OpenCV? What are the differences between them?
Adem Metin Çalı
You might not need to pick one or the other. If you have IPP installed, then you can compile OpenCV to call IPP internally. I think the OpenCV compiler flag for this is USE_IPP.
You can investigate whether the OpenCV functionality that you'd like to use can take advantage of the IPP back end.
If you tell us more about what you're building, I can give more detailed advice on the trade-offs with IPP, OpenCV, or some blend of the two.
For me it does not seem like an either-or situation.
You can check the differences and how they work together right from the Intel guys.
For some of us it might matter that while OpenCV is free, IPP is not. (When I checked a license was ~$200.) However it covers areas other than image/video processing (it also covers sound processing and cryptography for example).
Is there any open-source library to replace proprietary Intel Image Processing Library? At first I need to do image loading-saving, filtering (3x3,5x5 and so) with arbitrary kernel. Support of manychannel images with pixel values stored as float will be wonderful. Also I need a library with good documentation.
PS. both linux/x86 & windows/x86. I want to use it with mingw32 on windows.
PPS. The first task I need to solve using this library is to compute an fractal dimension.
Thanks
There is opencv
If you want to go Cuda then the Nvidia Performance Primitives
OpenCV is probably what you're looking for.
The latest version (2.2) contains both SSE optimization a-la IPP and CUDA implementations.
Does anybody here do computer vision work on Mathematica? I would like to know what external libraries are available for doing that. The built in image processing functions are not enough. I am looking for things like SURF, stereo, camera calibration, multi-view geometry etc.
How difficult would it be to wrap OpenCV for use in Mathematica?
Apart from the extensive set of image processing tools that are now (version 8) natively present in Mathematica, and which include a number of CV algorithms like finding morphologic objects, image segmentation and feature detection (see figure below), there's the new LibraryLink functionality, which makes working with DLLs very easy. You wouldn't have to change OpenCV much to be able to call it from Mathematica. Just some wrappers for the functions to be called and you're basically done.
I don't think such a thing exists, but I'm getting started.
It has the advantage that you can perform some analytic methods... for example rather than hacking in openCV or even Matlab endlessly, you can compute analytically a quantity, and see that the method leading to this matrix is numerically unstable as a function of input variables. Thus you do not need to hack, as it would be pointless.
As for wrapping opencv, that doesn't seem to make sense. The correct procedure would be to fix bad implementations in opencv based on your analysis in Mathematica and on paper.
Agreeing with Peter, I don't believe that forcing Mathematica to use OpenCV is a great thing.
All of the computer vision people that I've talked to, read about, and seen examples are using Matlab and the Imaging toolkit. Its either that, or go with a OpenCV compatible language + OpenCV.
Mathematica has a rich set of tools for image processing, but I'm uncertain about the computer vision capabilities.
I am interested in studying some image processing. I imagine matlab is the best way to go about that but right now I don't have access to matlab. I tried octave but for some reason it can't even load a png, bmp or anything other than 1 specific format. R doesn't seem to be the key here either.
What is the language of choice here? Perl?
Also can anyone point me to any other good tutorials that I may have missed on image processing?
Opencv is an excellent image processing library. Although written in C it comes with some high level tools to display images handle image files, mouse events etc so you can experiment without writing a lot of windows code.
It also works with python, although I haven't used it with the PIL.
If you are interested in how the algorithms work then implementing them yourself using python and numpy for the matrix ops is easy.
I guess it depends on what you want to do. Matlab certainly is a high end choice, but for a lot of things the image modules of general purpose programming languages do the trick.
I did some pixel mangling and image processing with PIL, the python image library. It is perfectly sufficient for processing single RGB images of reasonable size (say, what a consumer digital camera delivers). It can handle alpha channels, has some filters, more or less quick methods of accessing the pixel information - and it is python, a very straightforward and readable language.
The recommended language in my computer vision class was Ch with the OpenCV library. Ch is basically an interpreted version of C, the syntax is quite similar but has a few nice features, like treating arrays as matrices. OpenCV will house pretty much any image processing function you could need.
I think any free programming environments will do basic image processing well. If speed is not an issue, Processing will work fine and you can easily extend your code to Java in the future.
Have a look at Adobe Pixel Bender. It's really fun to play with.
I'm curious as to what type of experiences people have had with libgd. I am looking for an alternative to GDI+ (something faster). I have tried ImageMagick, but can't get the performance out of it i need.
I have heard that ligd is fast, but less feature rich, and that ImageMagick is slow, but more feature rich.
I only need very simple image processing procedures (scale, crop) on a limited number of formats mainly jpg. However I need very high quality interpolation and it has to be fast (well faster than GDI+).
I am considering trying libgd does this seem like a good fit, given my requirements?
My own experiences with libgd are very good.
I've used it on a website where I'm taking jpeg images from disk, adding a text title to them, and rendering them back out, and it feels just about as fast as if the file was being served straight from disk.
Given that each time it's decoding the jpeg, altering it, and then re-encoding it, that's pretty good!