Does it exist a solution for Java that allows to working with images in a very similar way to MATLAB IPT?
I mean, are there some libraries to do something like IPT4Java.imfilter(A, F) or IPT4Java.fspecial('average', [3 3])?
If not, what is the best solution to implement this kind of approach?
Java Advanced Imaging (JAI) supports a multitude set of filters that you can apply on images.
You could have a look at the Java wrapper around OpenCV:
http://code.google.com/p/javacv/
Related
I want to use the imagemagick library (more specifically: the shepards distortion part of it) with processing.org. Does anyone know how to do that? Or if that is not possible, does anyone know of another library that can do this type of distortion?
I've already found these related questions: one,
two and
three
Try to Look into the JMagick, it is a wrapper of ImageMagick. However if you wish an interface to the ImageMagick commandline im4java API should be useful. I didn't use im4java myself. But the following portion is taken from the site:
JMagick is a thin JNI layer above the ImageMagick C-API. im4java in
contrast just generates the commandline for the ImageMagick commands
and passes the generated line to the selected IM-command (using the
java.lang.ProcessBuilder.start()-method).
Disadvantages of the approach: your are limited to the capabilities of
the IM commands. With JMagick, you have access to the low-level
interface of IM and therefore you have a very detailed control of the
processing of images. And you have better performance.
I want to develop a small Java program using some input like the pen of a Wacom graphictablet and found only the very active JPen project but are there some more possible alternatives without JNI or JNA (without any additional needed dll files), a pure Java implementation?
You can take a look at JTablet. From another SO thread.
It seems JPen moved to GitHub and this might be the best solution at the moment.
The other alternative solutions are not developed and maintained anymore.
https://github.com/nicarran/jpen
I will develop a Java application that uses some image processing algorithms. I have done some image processing applications using C++. I'm currently using BufferedImage object to save data from images but I'm wondering if there is a better way to handle images in Java (improve performance).
Do you guys have any recommendation?
Thanks!!!
if you want to work with images i would look at JavaCv: https://github.com/bytedeco/javacv
JavaCV first provides wrappers to commonly used libraries by researchers in the field of computer vision: OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, and ARToolKitPlus.
I think you will find all what you need.
Luca
For JAVA there exists for example:
FiJi
ImageJ
Fiji
BoofCV
Rapidminer with IMMI (for image mining)
I'm looking to do a couple basic features with images and Java...
image resizing and cropping
possibly making composite images
What java library would be the easiest to use for that purpose?
thanks
Java Advanced Imaging API
http://java.sun.com/products/java-media/jai/forDevelopers/jaifaq.html
Have a look at the standard Java 2D graphics API first; it can do all the things you mention (resizing, cropping, compositing) without the need for exernal libraries such as Java Advanced Imaging.
See 2D Graphics in The Java Tutorials for an introduction.
Java Advanced Imaging (here is an FAQ for it).
See also this article.
Apache also has an implementation which aims to be a more portable than other frameworks (and is slower). See the sanselan page.
Catalano Framework. You can use the same code in Android too, contains several algorithm in parallel.
Project: https://code.google.com/p/catalano-framework/
Article: http://www.codeproject.com/Articles/656059/Catalano-Framework
I am aware that Java includes very advanced image processing API's but what I'm looking for is a pure Java API (uses Java2D) that is "phrased" in terms more appropriate to common tasks of web image processing i.e. I want to write:
image.scale(0.2)
instead of
AffineTransform t = new AffineTransform(...)
t.resize(...)
t.translate(...)
AffineTransformOp = new AffineTransformOp(...)
etc. etc.
Think ImageMagick or GD.
You could write your own wrapper classes around Java's ImageIO libraries that gives you the method signatures you need.
There is no java native equivalent for the full functionality of ImageMagick that I know of. However there are two java bindings for ImageMagic: JMagick and IM4Java.
Java2D library creates memory leaks on Tomcat 6:
https://issues.apache.org/bugzilla/show_bug.cgi?id=51687
If you are on 7 you should be good to use it.