For those who asked about sources of my little experiment from last week, here they are. Make sure you are using FLARToolKit revision 2570 with these.
If you wasnt reading FLARToolKit mailing list, here is short summary: FLARToolKit converts color image to “binary” image before doing any magic on it, using fixed threshold filter. In fact, this threshold is simply hard-coded to be 80 in many examples, and you will need to write more code to detect good values for threshold if you want your application to run regardless of lighting settings. The filter in this experiment avoids the problem by using local average brightness as a threshold for every pixel; the downside is that it enables FLARToolKit to “see” far more details, thus wasting even more CPU time. As a work-around, I tried to narrow down search area in the image using last detected square, but this only helps when marker motion is limited.
Well, check it out, play with it, and let me know what you think.
nice work, makc! any reason you didn’t commit your AdaptiveToBinFilter class too?
definitely appreciate how you structured this to make it easy to swap the filter in and out.
you mean to FLARToolKit? I wanted to keep my changes there as unintrusive as possible. besides, I only have GPL license to FLARToolKit, so adding new code there would turn it into a mess of files under different license terms :)
Hi mack, i tried to implement this, but i get an error, you have changed this class “FLARSingleMarkerDetector”?
1119: Access of possibly undefined property filter through a reference with static type org.libspark.flartoolkit.detector:FLARSingleMarkerDetector.
thanks!
Yes, and that’s why I wrote, “make sure you are using FLARToolKit revision 2570”. It will not work with old revisions like the one included in Saqoosha’s starter kit, for example.
I can’t find the download link for FLARToolkit 2570. The latest version I could find is 2.5.4. Would you know where to get 2570? The latest version doesn’t have getters and setters for filters
2570 is not version number, it is revision number (and very old one, too). you need svn client to download particular revision from libspark repository.