A couple math libraries?

Started by
4 comments, last by Thr33d 18 years ago
Hi, I'm hoping to play around with using image data (as a vector) and filters as matrices. For this I'm looking for a general purpose (free) fast matrix math library. (can someone please suggest one?) I'll also be needing to use the Conjugate Gradient method (an iterative minima finder) so if you know of another (or the same) free, (hopefully fast) math library which supports this, it'd be great. I hope to use VisualStudio 2005 Express (vc++) or vb.net I'm hoping to "undo" a matrix operation to a vector Ax = b (A is known, or acurately guessed, b is resulting data, wish to find x: original data) Anywho... thanks in advance, -Michael g. edit: Intel's math libraries look great, if not overkill. But I was hoping to find a free library. Also, perhaps I can get away without the CG library by just implementing it myself. It doesn't look too terribly complex. I can probably use this and just tweak it to my needs (I don't plan to use preconditioning, and I plan to allow feedback of number of iterations, and allow termination at any point. I have some other sources with which I think I can figure this stuff out.)
Advertisement
Google "OpenCV". It's pretty much exactly designed for the stuff you're doing.
Thanks for the link. I don't know if it's what I'm looking for though.

I mean to check the usefullness of this method for undoing an image filter applied to an image... I don't mean to track anything or find orientation in 3d, or anything like that.
OpenCV seemed to be about Computer Vision stuff (which is very cool) which is afaik rather seperate from my application.

Ultimately I'm going to try to enhance blurry raw images and see how good it can get.

Correct me if I'm missing something in OpenCV

-Michael g.

edit: specifically, I wish to recreate the research done here and see how far I can take it.
not a math library, but discusses algorithms for removing blur in microscope images.

link

make sure to check out page 2 (the link is 1, the overview)
You should spend a little more time looking at OpenCV. Image processing is very, very much a part of computer vision, and one of the things OpenCV is designed for (as well as being a good general-purpose math library which has been used outside of Computer Vision). And the library certainly includes matrix inversion and pseudoinversion, as well as more complicated solvers.
Hi all,

@Sneftel: I've taken a bit more time looking at the project, and although details about functionality specifically pertaining to what I'm hoping to do are... iffy... and it seems a bit of overkill, I've downloaded it and will dig into it. I'll let you know if it ends up working out well :)

@lonesock:
Thanks! I read the entire section and was able to get some different search terms to find a multitude of related information. I also learned that the scientific community, specifically microscopic and telescopic studies (and medical) are the groups that seem to most use such image enhancement algorithms.

On that subject, if anyone could clue me into what the nearest neighbor algorithm is that they're using, I'd love to know. I've gleaned that nearest neighbor (similar to 2d image info) looks only at the directly adjacent two layers (in a 3d image - layering of 2d images) If this method has applications to 2d I'd like to know. It seems to enhance the data well...

I've actually downloaded several items to look into... some are commercial demos, others are stuff like opencv.

In the end I've decided to check into the work done with the application imageJ. It seems to have *a lot* of features and plugins as it seems to be used by a number of people in scientific studies. It also appears to be a viable solution to quickly try out some ideas I've had (in the form of plugins for this application). It's in Java, but claims to be rather fast.
We'll see how it works!

-Michael g.

This topic is closed to new replies.

Advertisement