Wow, this looks nice. You can search for hours on yourself and than HN tells you in minutes what is all around. Amazing!
Yes I think ImagePlay is quite comparable. I have too look into the details to see where it differs. I imagine you can also really simple add new own plug-ins?
> I imagine you can also really simple add new own plug-ins?
You could write your own filters in its custom language and save them, of course you could easily download existing filters from others and save them too. I don't remember if you could save composed filters, last time I used it was in 2007 and I was still in high school. I found my abandoned flickr profile, I really liked writing geometry filters [1]. The two spheres and the two spiral patterns were made using mathmap. Right now I can't find an easily installable version for Linux though. As far as I remember it could compile its filters to c then binary if gcc was available.
One other interesting property of mathmap: It didn't cache intermediate results between filters and handled images as if they were infinite and had infinite resolution. It works, because if you only care about one given pixel of the resulting image you can calculate the previous image pixels lazily. It allowed really convenient compositions, like composing a Mandelbrot-set generator and a zoom filter then zooming into the set indefinitely only adjusting the zoom filter.
I didn't try ImagePlay yet. Can you write your own filters in it or you can "only" compose from the existing filters? Writing your own filters was a killer feature of mathmap for me, especially for custom geometry filters.
Well, I guess I would prefer GitHub and license it GPL3, then you can use it any way you want. It would be flattering if it was integrated into the main build.
Uhmmm, okay. I guess have multiple ways to receive money -- e.g., some folks like to give "anonymously" via Bitcoin, some folks are okay with Paypal, some are not, etc. etc.
Thanks. By the way, I suggest making a dedicated 'donate' page, as linked by a 'Donate' button in the navigation bar (to the right of '[...] - Download - Github - Twitter')
I'd call that 'processors'. Something like 'load image' could be called 'source' and 'save image' a 'sink'. Of course I'm biased since I have been using such naming schemes for years in signal processing software
"Tools" or "functions" probably work and fit in well with descriptions of processing in graphics packages; "processes" seems fine to me (like the suite from http://processing.org ).
Yes. Functions or methods or procedures is preferable to processes. "Processes" implies threads or independently executing activities, like multiprocessing.
For what I know, "processes" is an established term in component-based paradigms like flow-based programming, which this system seems to have many similarities with.
I guess it's what you are used to. Back in the days I toyed with music production and actual hardware units usually had names like synthesizer/flanger/phaser/equalizer/mixer/processor (so not the verbs like synthesize/flange/phase/equalize/mix/process) and I just took over those. There might be counter examples of course but I cannot come up with one atm.
Nice! Thanks for these references. We, the current developers, did not know about these papers. Actually the idea of Imageplay was created by a professor now in retreat.
I definitely need to ask him if he know about these.
This is totally feasible, ImagePlay allows to add your own Plug-Ins. Like this you can also add algorithms which are patented (which I don't know if and how and where SIFT is.)
Nice. Definitely looking forward to checking this out :)
SIFT is patented[1] and not free for commercial use. This puts people who want to use the amazing alternative to play around finding alternatives, which are usually either half-baked functionally or simply not as good.[2]
ImagePlay is a rapid prototyping tool for building and testing image processing algorithms.
It comes with a variety of over 70 so called processes which can be combined into complex process chains.
ImagePlay is completely open source and can be built for Windows, Mac and Linux.
Wow! The screen shots on the site revealed something pretty cool. The exact center of the 512 x 512 Lena test image is the middle of her right eye's pupil.
If I can give some feedback about website, scroll is behaving in a weird way. It's not a good idea to alter this behaviour, it should be what user wants and is used to, no what author thinks is good :)
Would you be open to Wavelet Transform implementation for images? Features does not have that and I think I will love to do it. I guess it will come handy for someone trying to fiddle with BM3D image denoising.
The algorithms are either our own or OpenCV. Images are currently converted to 8-bit when loaded. But all processing is done internally as float. We plan to support int16 and float images soon.
What colorspace does it use? I suspect it is sRGB. Can a user change it? There could be filters that makes more sense in a linear colorspace. Anyway any sane colorspace handling would be awesome.
Bug: after loading a 1.5mb image on OS X 10.11 Beta, scrolling in the image viewer causes it to crash.
EDIT: Turns out not loading an image and just trying to scroll with the trackpad (two finger scroll) on the image viewer window causes it to crash. Normal scroll bars actually work.
It's awesome to have another open source image processing library to learn from and build on in addition to: G'MIC, ImageMagick, VIGRA, VIPs, Kritaimage+Pigment and GEGL. Just imagine all the great things that can be built for artists and designers.
ImagePlay focuses more on the intuitive interface for education and rapid prototyping then to be a complete image processing library. That is exactly why it is splendid for artists and designers.
Wow, that is totally awesome and potentially can save me a lot of time in the future. Up to now I prototyped most of my OpenCV stuff with small python scripts. I guess this has changed now. :)
Where is the donate button?
Any tool like this really really needs to come with some examples. It's so much more inviting and inspiring when you can play with a range of existing set-ups.
(Maybe it does - but if so I don't know where they are)
I used to play with roborealm when it was still free; it provides the same sort of high level abstraction to experimenting with computer vision and comes with a big library of filters/kernels.
Awesome project, can this compete somehow with photoshop in the future? Project has almost everything, custom plug-ins, custom filters, open source, devs can develop bindings and etc,.
I don't think so, Photoshop (and GIMP too) are oriented to the photographic community: the UI, the tools, most plugins, etc. This seems to be more aimed to students and researchers. Though in theory, if the processing engine in the back is as good (and there's no reason to think it isn't), it could, the UI would get in the way to perform the same tasks that you would on PS.
First thing I thought about when I saw this was "can my wife, a photographer, use this instead of creating Actions in Photoshop to automated certain enhancements?" She does a lot of manual tweaking, but I'm going to show this to her tonight and see what she thinks.
I have used GIMP a little, GIMP is great, but my experience with it, was not enjoying. only advantage I could see using GIMP over photoshop is probably because it is free.
Try Krita.org then. It’s free, too, and a bit more focused on creative work, but it supports all the colorspaces, all the vector layers and everything. A lot more usable than GIMP, too.
(On a sidenote, I bet the creators would have loved to have this run inside the browser; the fact that this cannot be done again shows how broken the web is).
(We actually never thought of building it for the web up to now. The Image Processing community mostly still write in C++ to be able to optimize the code to the bare metal. But it seems that there are solutions emerging (ASM.js and cohorts) for the broken web.)
I wouldn't say the web is broken it's just not up to such a demanding task, yet. SIMD.js should be in Ecmascript 2016 (JS7). Once available, traditional image, audio and video processing techniques should be viable on the web.
How it compares to Gimp? I use this tool to do various processing (mainly photomontages), and there is a lot of filters, so, what is added by imageplay?
Gimp is user friendly image editing software. It hides away as many as possible of the gory details.
Imageplay on the other hand is there to prototype and learn about image processing. You can build complex pipelines with basic image manipulation algorithms. As all code is available you can later on use your own design algorithm in your projects.
Also you can directly stream from the WebCam to this pipeline, something Gimp can not. (-,
If you want gory details, try G'MIC[1]. It has plugins for GIMP and Krita, an online version[2], a ridiculous number of filters[3] and features, and a command language. On the other hand, it makes things like imagemagick look simple and user friendly. My favorite quote from the "Beginner's Cookbook":
> The image of a finger or a brush pushing along paint immediately brings to mind tensor fields, produced by -diffusiontensors, which directs asymmetrical smoothing kernels in the -smooth command to diffuse noise parallel to detected edges
I put a link form the readme to the license. The license itself is in the root directory of the project, not the source code directories. Might copy them there.
I just saw that the executable (on Windows) is in the zip file within the source.
I think what I said still holds to a good degree. Most users expect (and need) the installation to proceed through "setup".
That's not to say it isn't a neat tool.
I think the title stresses the wrong thing. It's a neat tool that allows you to play with image processing operations. It has nothing to do with being "for everyone" and more to do with making experimentation with image processing techniques easy as drag-and-drop. That's the value proposition.
Hey, we are a bunch of people working on ImagePlay the biggest contributor is my colleague smk2.
Yes definitely we have Dilation and Erosion. Yes there is a way to work with image sequences, but there are no motion-relevant algorithms implemented yet.
Weird, working fine here on 10.9.5. (Yes, also not on latest system yet (-, ...) Please provide details, best directly as an issue: https://github.com/cpvrlab/ImagePlay/issues
> You can build your own Plug-Ins which you don't need to GPL.
This is incorrect. In general to allow non FOSS plugins you need to use the LGPL instead. If this is something you care about you might consider licensing the main app/plugin in system under the LGPL and the plugins you provide under the GPL.
Hm we like it more the other way around. That the application and from us provided Plug-Ins are GPL and people are free to license there Plug-Ins as they please.
Anyway we will for sure not do any legal actions against Plug-In developers.
Personally, I think it's a shame. GPL generally puts me off as the licence is too complex for me to understand and I don't understand in what situations I can and cannot use it. MIT, BSD etc are simple enough that even without a legal brain I can get the gist of what I can and cannot do.
Okay, but at the end this is not too much about profit.
More to give teachers in the world a tool for teaching Image Processing in a more intuitive way. They anyway will not make profit I guess with ImagePlay.
But if you find someone willing to "donate" enough we might switch license (-,
[1] http://www.complang.tuwien.ac.at/schani/mathmap/