I added two the Imageprocessing Library some new blurs. RadialBlur, ZoomBlur and GeometricDisplacedBlur. The GeometricDisplacedBlur is very nice, because you can use any GeometricMap with this filter.
I also added a RedEyeRemoval and made some updates to the Color class. Some other filters have been updated as well. I will focus now on some examples and more GeometricMap objects. I am also thinking about filters for HSV color correction and this stuff. But that is not very hard since it is only the ColorMatrix that has to be extended. I am also trying to find good ways for texture synthesis (that will not freeze Flash for 10 seconds).
If someone has any idea for filters that are missing just post it here please.

Hi, genius. Your things looks pretty impressive to me. It really inspires me to do some serious action programming too. But all that I used before to program a action script is Flash itself, can you please introduce us some easy to use , easy to understand enviroment and IDEs? please? We are really interested in what action genius is using to do the thing. Please do give us some post on this kind of topic, thanks!!
@guRuQu: You can either use Adobe Flex Builder, Eclipse with MTASC or Flashdevelop :)
wow! I rather prefer , Eclipse~~~ Thanks Marc!
What an astounding piece of work – my requests for further dev would be:
Simple mask, takes an input greyscale mask, and src image – spits out image with alpha mask applied as per input mask (black = transparent, white = solid or vice versa).
Wind filter – like in photoshop – applies a streaky paint effect in any direction.
Motion blur – does what it says on the tin, again a photoshop filter.
Hmm, getting a compile error from your batch file:
C:\Program Files\Adobe\flex2SDK\bin\ImageProcessing\lab\Main.as(12): col: 54 Err
or: Definition de.popforge.imageprocessing.filters.simplify could not be found.
import de.popforge.imageprocessing.filters.simplify.*;
Any suggestions?
Cheers
M
Oh, the lab is outdated. I am sorry but there is no longer the simplyfiy package since Pixelate has been moved to the noise package.
I’am getting a compile error saying that the SWC couldn’t be loaded: multiple points (using your batchfile). I get the same error warning in Flex Builder (2.01 both SDK and Builder) ..
Any clues?
I’m getting a the same compile error while running your batch file. I’m guessing the .zip file is missing some files/folders? Please let us know how to fix this. thanks,
-bryan
i will have a look monday. sb else got the same problem…because of the flexbuilder version etc. he could fix it but i will tell you what is going on asap
I’m not sure about this but I think Flash can store JPEG images with alpha-channel using JPEG for RGB and zlib for the alpha channel. I found JNG, a file format that seems to offer exactly the same thing. Could something like that be done in the Imageprocessing Library? What do you think?
>>I got the same error about compiling….”multiple points”, I’m using flex 2.0.143459….somebody found a solution about it ?
Now…i updated Flex to 2.0.1 verion, the only error i got is about simplify …still i can’t obtain any result…I mean…i do not get any error importing class de.popforge…..but i don’t see anything on player, does somebody sa a simple working sample of IP use so i can learn how to implement it ?
Thank u :)
Remove
import de.popforge.imageprocessing.filters.simplify.*;
and add instead
import de.popforge.imageprocessing.filters.noise.*;
I am sorry, I just updated the swc in the zip file but not the example. I will do so with the next release.
Finally i get it, i’m studying library u built, very nice idea and fine realization, i’m taking a look to ICaptureDevice , just wondering about use an FLV as videoSource…i thouhgt another class should implement this interface, is it possible someway to do that or see how interface is written ?
Anycase thanks for ur job&ideas :)
Hey, is the documentation not explaning enough?
http://je2050.de/imageprocessing/de/popforge/imageprocessing/capture/ICaptureDevice.html
Anyways a class for that will be inside the next release.
Yeah the documentation is enough…guess i’m just new to these stuff, i don’t figure out the way to implement with FLV…anycase i’ll study it :) thank u for interest.
Hey i have done a filter similar to the Polar Coordinates filter in photoshop. Unfortunately i wasn’t able to interpolate the pixels correctly but maybe you can make it better and also faster would be nice ! Have a look here
http://labs.blitzagency.com/?p=118
Hey joa, great stuff. I’ve been trying to do webcam image processing myself, but it fell through because it wasn’t fast enough. I can understand not releasing the source, but could you at least reveal how you’re looping through pixels in BitmapData?
I’ve tried a regular for loop with GetPixel() then SetPixel(), and also doing GetPixels() then looping through the ByteArray and using SetPixels() at the end – but both of these methods end up taking 95% CPU time even without actually doing anything to the pixel data.
That really depends on what you are trying to do. I found lot of new performance optimizations. For a 2048×2048 pixel image I can do a real contrast correction now much faster by finding the average in 300ms.
That is still a lot but quicker than normal loops take (about 1sec). But this is only faster for large images.
Just that you get an idea how it looks like. This is a part from a performance guide my company will release soon when I have some time to finalize it:
var y: int;var x: int;
var m: Boolean = true;
while ( true )
{
c0 = bitmapData.getPixel( m ? x++ : --x, y );
if ( x == w || x == 0 )
{
if ( y++ == h )
break;
m = !m;
}
}
I’m trying to do real time analysis on a webcam image without the frame rate dropping below 30 fps. 320×240 would be nice, but 160×120 is enough.
Here’s how I did a simple threshold, which I thought to expand into some more complex processing. But if I comment out the if clauses and leave just the reading and writing, it still takes up most of CPU time, even with a 160×120 webcam image.
In the constructor:
frameData = new BitmapData(videoWidth, videoHeight, false);
frame = new Bitmap(frameData);
addChild(frame);
video = new Video(videoWidth, videoHeight);
camera = Camera.getCamera();
video.attachCamera(camera);
In the onEnterFrame callback function:
frameData.draw(video);
for (var py:int = 0; py
Easy for you would be using the native function BitmapData.threshold. If you want to get as much speed out of it as possible I would suggest precalculated lookup tables and using BitmapData.paletteMap and you should be fine.
I don’t really need a threshold for my application. Well, I do, but it’s only the first step in the processing queue. I’m doing a bunch of other calculations as well that don’t have a native function – a bit like a filter queue, but with other data output than just updating the image (shape recognition for a museum installation).
I just started with a threshold because that’s a very fast operation – but if I can’t even get that to run at decent speed, doing more advanced manipulation of the pixel data doesn’t seem possible, either.
Hi, I’m trying to get the lab example to work in the Flash IDE. When I compile it with Mxmlc via compile.bat it works great, but using the same Main.as in the Flash IDE I get:
VerifyError: Error #1014: Class de.popforge.imageprocessing.filters::FilterQueue could not be found. at global$init()
Here’s what I did to create the .fla in the IDE:
* set the .fla project size/fps to same in Main.as
* saved the .fla in the same folder as ImageProcessing.swc
* set the .fla document class to Main and validated it
Am I missing something, or is the lab demo “Flex-only” and there’s no way to convert it? Thank you.
P.S. this stuff is very cool, keep up the great work.
Hi, i’m using flex builder 3.When i want to run your example code the following error occured.
import de.popforge.imageprocessing.filters.color.*;
import de.popforge.imageprocessing.filters.convolution.*;
import de.popforge.imageprocessing.filters.render.*;
import de.popforge.imageprocessing.filters.noise.*;
import de.popforge.imageprocessing.filters.distortion.*;
import de.popforge.imageprocessing.filters.morphological.*;
import de.popforge.imageprocessing.core.*;
this classes could not be found.
please help me about that.
Mahedi, have you imported your Lib into your proyect?
Right Click on your proyect > Select Flex Builder Path > Library Path > Check if you have the component on the Libs folder or add the SWC Folder to the library path.
Hope this help
Sundance
Hi,Sundance thank you very much for replay.Today i’ll apply that strategy and then knock you about the result.
best regards
mahedi