Tuesday, June 11, 2013
Maybe?
http://sourceforge.net/projects/openjcv/files/stats/timeline?dates=2013-01-01+to+2013-06-11
Maybe I should pick this back up, huh?
Monday, April 27, 2009
Blur, sharpen, repeat
I added standard blur and sharpen functions to ImageProcessing today. The blur function uses standard Gaussian kernel convolution with the image. The sharp function employs an unsharp mask technique which uses the Gaussian blur function.
I'm not a big fan of Sourceforge, and I'm not entirely sure how they calculate project rankings, but mine has apparently climbed the ladder about 35000 steps to somewhere in the mid-2000s. Just in case this means people are interested in using/trying the library, I have re-prioritized project documentation as most important. You (meaning the 0 people who read this blog) should see at least javadocs in the next day or two.
I'm not a big fan of Sourceforge, and I'm not entirely sure how they calculate project rankings, but mine has apparently climbed the ladder about 35000 steps to somewhere in the mid-2000s. Just in case this means people are interested in using/trying the library, I have re-prioritized project documentation as most important. You (meaning the 0 people who read this blog) should see at least javadocs in the next day or two.
Sunday, April 26, 2009
OpenJCV release 0.1
Seriously, this is an early release. For cereal. All the features work, documentation exists but is not uploaded to sourceforge, isn't there a better alternative to sourceforge (?), I'm working on a small user manual with howtos for some of the unavoidable complicated processes, I'm going to upload my GUI 'test' program which is chock full of examples, I need feedback to gauge the importance of upcoming features, I'm going to write in run-on sentences until the day I die.
Features list:
* geometry library
* matrix library
* some image processing
* managed GUI/windowing system
* video (webcam) streaming
* some computer vision techniques (edge detection, hough lines, etc.)
Features list:
* geometry library
* matrix library
* some image processing
* managed GUI/windowing system
* video (webcam) streaming
* some computer vision techniques (edge detection, hough lines, etc.)
Cut the fat?
By trying to provide a int/float/double form of everything in the geometry package, it's become bloated. Everything can be a double, right? I may cut the fat, cut all the integer and float variants out of the package...
Tuesday, April 7, 2009
Geometry package
I started a geometry library in OpenJCV (the open java computer vision library, don't forget), to aid primarily in drawing shapes over images and streaming video. Initially, I created each class (point, line, ellipse, rectangle, etc) from scratch, using Java generics to allow for int, float, or double primitives.
However, the Java SDK provides implementations of some shape classes in the java.awt.geom.* package. For example, java.awt.geom.Line2D is an abstract class with implementations Line2D.Double and Line2D.Float. Are these worth extending? For now, I'm going to bet on 'yes'. It's a tough choice because I have no design reason for one way over the other. Also, I found no strong opinions about the subject anywhere Google can take me.
However, the Java SDK provides implementations of some shape classes in the java.awt.geom.* package. For example, java.awt.geom.Line2D is an abstract class with implementations Line2D.Double and Line2D.Float. Are these worth extending? For now, I'm going to bet on 'yes'. It's a tough choice because I have no design reason for one way over the other. Also, I found no strong opinions about the subject anywhere Google can take me.
Saturday, April 4, 2009
Video capability complete
JcvVideo streams video from network locations. JcvWindowManager now manages windows which display both JcvImage and JcvVideo. To circumvent the JVM-hardware interface issues with video still not addressed in the latest Sun gem, JavaFX, I decided to accept only video available on the OpenJCV host computer's LAN. This way, I'm not going through the pain of addressing different pieces of hardware, and I'm not placing that hardship on the user.
However, users must stream their video to the network. Fortunately, programs of this nature are readily available for every platform. For Linux, I have been using 'webcam-server'. I will post options for Windows and Mac soon.
However, users must stream their video to the network. Fortunately, programs of this nature are readily available for every platform. For Linux, I have been using 'webcam-server'. I will post options for Windows and Mac soon.
Tuesday, March 31, 2009
Image to BufferedImage conversion
For some reason, this seems to be a largely unsolved problem on the internet. Here's the short:
1) Image im = whatever...
2) BufferedImage bi = new BufferedImage(im.getWidth(null), im.getHeight(null), type);
3) Graphics g = bi.getGraphics();
4) g.drawImage(im, 0, 0, null);
There are plenty of optional details, of course, which check for transparent pixels, create a BufferedImage that is compliant with the target platform's graphics options, etc. These steps provide you with the critical path, and leave the details to exploratory choice.
1) Image im = whatever...
2) BufferedImage bi = new BufferedImage(im.getWidth(null), im.getHeight(null), type);
3) Graphics g = bi.getGraphics();
4) g.drawImage(im, 0, 0, null);
There are plenty of optional details, of course, which check for transparent pixels, create a BufferedImage that is compliant with the target platform's graphics options, etc. These steps provide you with the critical path, and leave the details to exploratory choice.
Subscribe to:
Comments (Atom)