Preparing another OpenCV Service release


This is what I've been working on.  Testing.  After Raver pointed out a bug feature, I had to work on a lot of OpenCV plumbing.  Did you ever have an OpenCV filter blow up on you?  Why isn't MRL testing this?  What a great idea !   Have MRL test itself.  

Each Service now has a test() method - this is the "Testing Harness".   We have a harness, now we need the horse.  All the tests now need to be created to test all the services to make sure they can do what we expect them to do.  Sometimes testing will occur on a computer which doesn't have a camera, or any image files.  That's ok !  This test came with image files in MRL.  That makes at least part of the testing easy to do.

I will be going through every Filter - and adding tests, also refactoring them and adding new functionality. I've already re-factored the ImageFile Frame Grabber.  In the past it would resend the same image loaded from a file. Now it re-creates the image, so each test is with a "fresh new" image - otherwise you would see the frame counter turn black as it would re-write over itself.  And its still fast 11 fps 24K frames already :)

Starting with "A" for And - And will have a gui you can grab a file and add it with a bitwise AND to any incoming image.

In the code you (Java or Python) you can do this ..

// specific filter tests
OpenCVFilterAnd and = new OpenCVFilterAnd();
BufferedImage bimage = ImageIO.read(FileIO.class.getResourceAsStream("/resource/OpenCV/testData/mask.png"));
and.loadMask(bimage);
addFilter(and);
OpenCVData o = getOpenCVData(); 
String outfile = o.writeDisplay();
Needs to be cleaned up a bit ..but its loading an And filter with a image called mask.png
 
Bitwise operators are great for creating masks, and masks are great for isolating objects, and isolating objects is what you have to do if your going to GRAB THEM !!  Probably could put a button on the gui to load the image.  Making it easier in code to load the other image too, so it could come from a different OpenCV/image pipeline.
 
77K frames later at 250 fps ... no memory leaks here, Yay! ... if there were it would have been dead a long time ago.... (I've seen it happen)