9 ms·
Show HN: Image Processing for Everybody
- loomi 11y agoIt is in late beta stage. Any comments and help is highly appreciated.
- pmelendez 11y agoWhich can of help are you looking for?
- loomi 11y agoThe usual kinds of help (like any help! (-, ): - Providing new ideas - Bug finding - Bug fixing (https://github.com/cpvrlab/ImagePlay/issues https://github.com/cpvrlab/ImagePlay/issues) - Documentation (improvements) - Website (improvements)
- pmelendez 11y agoSounds good... I will check the repo later to see if I can help with some bugs :)
- loomi 11y agoImagePlay 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.
- mstdokumaci 11y agoi couldn't find any way of adding images to it as a start. (OSX)
- loomi 11y agoOkay this might be a use full hint to show in the beginning: To load an image simply use the "Load Image" process in the "Input/Output" category. You can also directly access the WebCam this way if that is your style (-,
- loomi 11y agoTracked here: https://github.com/cpvrlab/ImagePlay/issues/45 https://github.com/cpvrlab/ImagePlay/issues/45
- scriptproof 11y agoHow 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?
- loomi 11y agoGimp 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. (-,
- rer0tsaz 11y agoIf 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 [1] http://gmic.eu/ http://gmic.eu/ [2] https://gmicol.greyc.fr/ https://gmicol.greyc.fr/ [3] http://gmic.eu/gimp_filters.txt http://gmic.eu/gimp_filters.txt
- loomi 11y agoI was not aware of G'MIC. We could try to implement a G'MIC process which gives access to this filters. Does G'MIC also provide a ImagePlay like interface?
- iamflimflam1 11y agoReminds me of Khoros[1] and Cantata[2] that I used back in the early 90's. Sadly neither seem to exist anymore. [1] http://www.hpl.hp.com/techreports/92/HPL-92-96.pdf http://www.hpl.hp.com/techreports/92/HPL-92-96.pdf [2] http://www.cs.ioc.ee/~khoros2/k2tools/cantata/cantata.html http://www.cs.ioc.ee/~khoros2/k2tools/cantata/cantata.html and http://www.cs.ioc.ee/~khoros2/k2tools/cantata/basics-cantata.html http://www.cs.ioc.ee/~khoros2/k2tools/cantata/basics-cantata...
- loomi 11y agoNice! 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.
- iamflimflam1 11y agoDefinitely worth having a look at them as they will have faced and (maybe) solved quite a few of the same issues you'll be facing.
- droelf 11y agoA recent, similar, node-based image editor based off of GEGL is http://www.jonnor.com/2015/01/imgflo-0-3/ http://www.jonnor.com/2015/01/imgflo-0-3/
- loomi 11y agoThat is cool, fully web based. Thanks.
- iamflimflam1 11y agoSeems to have a couple of issues on the mac - the image viewer doesn't seem to show anything (zoomed in view works, but no image in main display). Hough line detection seems to be complaining about some opencv issue. Other than that it's pretty good.
- leni536 11y agoThis reminds me of the mathmap GIMP plugin [1]. I played around with it a long time ago. [1] http://www.complang.tuwien.ac.at/schani/mathmap/ http://www.complang.tuwien.ac.at/schani/mathmap/
- loomi 11y agoWow, 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?
- leni536 11y ago> 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. [1] https://www.flickr.com/photos/10529466@N02/ https://www.flickr.com/photos/10529466@N02/
- smk2 11y agoWe provide a C++ API: https://github.com/cpvrlab/ImagePlay/wiki/Plugins:-01-Tutorial-(Windows) https://github.com/cpvrlab/ImagePlay/wiki/Plugins:-01-Tutori... You basically get access to pixel values and can then do whatever you want. Might not be comparable to what mathmap does though.
- billyhoffman 11y agoWow! 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.
- loomi 11y agoHehe good observer skills! I did not realize that yet.
- slxh 11y agoI believe that is a rule that many photographers sometime use (placing the dominant eye in the center of the photo) [1]. 1: http://petapixel.com/2015/03/16/9-photo-composition-tips-as-seen-in-photographs-by-steve-mccurry/ http://petapixel.com/2015/03/16/9-photo-composition-tips-as-...
- carlob 11y agoYou should look up the original, you will see it's not so centered on the eye. wink wink. know what I mean. nudge nudge.
- methyl 11y agoCool stuff! 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 :)
- loomi 11y agoFinally we are C++ developers not Webwizards. (-, But we love to have pull request for the website. https://github.com/cpvrlab/ImagePlay/tree/gh-pages https://github.com/cpvrlab/ImagePlay/tree/gh-pages Thanks!
- WasimBhai 11y agoWould 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.
- smk2 11y agoWe currently allow to convert images to Fourier space using FFT. We might add wavelets later on, thanks for the feedback.
- AsakiIssa 11y agoPretty cool for an open source project. Reminders me very much of Filterforge (http://filterforge.com/ http://filterforge.com/) just missing the photoshop filter part.
- loomi 11y agoLooks nice! Though ImagePlay does have a quite different public I guess. It was build mainly for education and prototyping.
- minthd 11y agoIs there some similar (but a higher level) tool for computer vision ? one that you don't need much computer vision knowledge to build useful things ?
- loomi 11y agoBefore leni536 posted this: https://news.ycombinator.com/item?id=10008973 https://news.ycombinator.com/item?id=10008973 As I see it, it is more or less on the same level of abstraction. We are not aware of a even higher level tool for computer vision.
- JupiterMoon 11y agoWhat is this using to do the actual processing? (i.e. is this using OpenCV behind the scenes or ITK or it's own code)? Can this handle: 1. int16 and float data 2. 3D datasets
- smk2 11y agoThe 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.
- leni536 11y agoWhat 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.
- smk2 11y agoWhen loaded, images are converted to sRGB. Internally, all algorithms use float values so we might add additional color spaces and color depths.
- FraKtus 11y agoNice, it run on Mac Yosemite but has problems on 10.8 probably because of OpenCV ...
- loomi 11y agoWe tested with Mavericks 10.9, 10.8 we never tried. We might investigate this. Should not be a biggy.
- fla 11y agoLooks like a nice tool to prototype for OpenCV. Question: What made you choose the classical QT gui over QML ?
- loomi 11y agoThe project was started quite some time ago. Today we mainly use QML in our projects.
- madmax108 11y agoThis is cool.... Would be nice to be able to use more processing algorithms such as SIFT[1]. Or would the SIFT patent get in the way of this? [1] https://en.wikipedia.org/wiki/Scale-invariant_feature_transform https://en.wikipedia.org/wiki/Scale-invariant_feature_transf...
- loomi 11y agoThis 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.) https://github.com/cpvrlab/ImagePlay/wiki/Plugins:-01-Tutorial-(Windows) https://github.com/cpvrlab/ImagePlay/wiki/Plugins:-01-Tutori...
- madmax108 11y agoNice. 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] [1] https://www.google.com/patents/US6711293 https://www.google.com/patents/US6711293 [2] http://dsp.stackexchange.com/questions/1288/what-are-some-free-alternatives-to-sift-surf-that-can-be-used-in-commercial-app http://dsp.stackexchange.com/questions/1288/what-are-some-fr...
- thfuran 11y agoAren't SURF and ilk free and pretty performant?
- dr_zoidberg 11y agoROOT and SIFT are patented, that's why ORB was developed for OpenCV. It's mentioned in the OpenCV tutorials: http://docs.opencv.org/master/db/d27/tutorial_py_table_of_contents_feature2d.html http://docs.opencv.org/master/db/d27/tutorial_py_table_of_co...
- legutierr 11y agoVery cool. I would love to be able to programmatically interact with this through python bindings, though, rather than the GUI.
- loomi 11y agoYes this might be a future option to open the Plug-Ins to other programming languages. You might also look into the from rer0tsaz proposed (https://news.ycombinator.com/item?id=10009228 https://news.ycombinator.com/item?id=10009228) G'MIC. Not sure if there are Python bindings though. Further is there already tons of good Python Image Processing libraries around, mostly build around PIL.
- a3_nm 11y agoYes, or with programs that I could use on the command line, like ImageMagick's convert.
- Numberwang 11y agoI'm not so sure that blue background image used is without copyright..
- kachnuv_ocasek 11y agoWhat makes you think so? (Honest question, I don't recognize it from anywhere.)
- god_bless_texas 11y agoAwesome project, I can't wait until there is a section on the website talking about "use this chain if you want X".
- loomi 11y agoYes, you are not by any chance a full web stack developer looking for a open source project to invest some time? (-,
- god_bless_texas 11y agoNo but I would be flattered to contribute what I find and organize it for you guys!
- loomi 11y agoYes please!
- verbilis2 11y agoFree ! cool...
- Thriptic 11y agoAbsolutely awesome. I am about to embark on a large image processing / ML project for work. This is just what I need!
- loomi 11y agoThat is what is was mainly build for. From a prof for students. (-,
- tuyguntn 11y agoAwesome 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,.
- dr_zoidberg 11y agoI 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.
- digitalzombie 11y agoI read somewhere Gimp is more web base and Photoshop can be both print and web. Since they did away with version for Cloud base, I think Gimp have an advantage.
- tuyguntn 11y agoI 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.
- kuschku 11y agoTry 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.
- marpstar 11y agoFirst 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.
- dominotw 11y ago>It comes with a variety of over 70 so called processes Minor nitpick, that reads like you are mocking your own product.
- loomi 11y agoThanks for this hint from non-nativ speakers.. Better alternative?
- travjones 11y ago"ImagePlay comes with 70 built-in processes." And then you could provide a one sentence description of what processes do.
- loomi 11y agoI removed the "so called" for now. Thanks
- stinos 11y agoI'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
- loomi 11y agoWe will discuss this internally. We have not given to much though on nomenclature. It is mostly historical use. Under the hood we have here ImagePlay 6.0 which is a rewrite of good old trusty Borland C++ code.
- pbhjpbhj 11y ago"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 http://processing.org ).
- fgtx 11y agoGreat project! Would be nice to have something like an "export as code" feature.
- loomi 11y agoOh, we were waiting for this one: Sure that is what we got quite often as feedback! And it is somewhat planned. Though it is not straight forward to create performant code at the end. But we might investigate to export a list of snippets in a first step.
- fgtx 11y agoI think the 'performant code' is not so much as a must have for those - like me - that are more interested in the logic rather than the code itself. Also, IMHO a high level abstraction would be preferred when porting/coding said logic to another programming language.
- plicense 11y agoAlso, how do you connect processes in Mac?
- _pmf_ 11y agoI've thought about something similar, with the ability to generate sprite sheets. Is this possible with this tool?
- loomi 11y agoI am not sure what features you exactly want for your sprites. But in general you could create a Plug-In which saves sprites yes!
- Gravityloss 11y ago(EDIT: nevermind, bug was already reported: https://github.com/cpvrlab/ImagePlay/issues/51 https://github.com/cpvrlab/ImagePlay/issues/51 )
- loomi 11y agoStraight to issues please if you have a GitHub account: https://github.com/cpvrlab/ImagePlay/issues https://github.com/cpvrlab/ImagePlay/issues A simple description how the crash happened is gold worth by the way!
- bobajeff 11y agoIt'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.
- loomi 11y agoImagePlay 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. For artists, where platform independence is less important, I can also point you to http://www.am-cb.net/emotion/ http://www.am-cb.net/emotion/ .
- amelius 11y agoThis is really cool. (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).
- loomi 11y agoThanks for the praise! (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.)
- loomi 11y agoAlso we are happy not to pay for all the CPU cycles (-,
- Trombone12 11y ago(Not sure if parent is brilliant satire or not)
- bobajeff 11y agoI 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.
- kungfooman 11y agoGPL = kthxbye
- loomi 11y agoWe think GPL makes sense here, as we like to make profit everybody from improvements in the main software. You can build your own Plug-Ins which you don't need to GPL. Glad you visited, good bye. (-,
- kungfooman 11y agoYou can't make "profit" when your "customers" make no profit. Poor people barely donate a lot.
- loomi 11y agoOkay, 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 (-,
- alexchamberlain 11y agoDoes the licence need to be copy-left for that?
- loomi 11y agoSorry I don't get you, can you rephrase please. It is open source and hence copy-left .. ?
- alexchamberlain 11y agoSomething can be open source, yet not copy-left. For example, the MIT licence allows commercial usage and modification.
- antrover 11y agoCrashes every time I open it up on 10.9.5.
- loomi 11y agoWeird, 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 https://github.com/cpvrlab/ImagePlay/issues
- ashmud 11y agoBased on previous discussions on HN, you may receive criticism for the use of the Lenna image. A couple example threads: https://news.ycombinator.com/item?id=8253676 https://news.ycombinator.com/item?id=8253676 https://news.ycombinator.com/item?id=8704629 https://news.ycombinator.com/item?id=8704629
- loomi 11y agoOh, it is just the picture which makes everybody think "Image Processing". We see it as part of cultural heritage of the field. I guess over here in Europe we don't see this stuff as serious as you guys. But I might learn otherwise. Thanks for the heads up anyway!
- johnsonnn 11y agoDon't worry about it.
- chrischen 11y agoBug: 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.
- loomi 11y agoThanks! We appreciate bug descriptions: https://github.com/cpvrlab/ImagePlay/issues/55 https://github.com/cpvrlab/ImagePlay/issues/55
- 72deluxe 11y agoRun, do not do anything (do not add a filter, load images etc.) click + in Image Viewer - kaboom!
- loomi 11y agoWe know since today (-, https://github.com/cpvrlab/ImagePlay/issues/51 https://github.com/cpvrlab/ImagePlay/issues/51 If you find other bugs just shout!
- adaml_623 11y agoThis looks cool but I'm sure I used something similar over 20 years ago running on a Unix workstation at a university. Of course I don't think it was accessible to everyone back then. I'll try and find it.
- loomi 11y agoYou think of this stuff? https://news.ycombinator.com/item?id=10008958 https://news.ycombinator.com/item?id=10008958
- angersock 11y agoWait! You need a license on this source code. You don't have one. That is very, very bad.
- loomi 11y agohttps://github.com/cpvrlab/ImagePlay/blob/master/license.md https://github.com/cpvrlab/ImagePlay/blob/master/license.md ?
- nashequilibrium 11y agoThis would be nice as a web service for app developers, POST their images with selected alogo to be applied and then send it to their S3 bucket.
- infinitone 11y agoYou can do that with OpenCV, does everything have to be made into a web service to be used nowadays?
- loomi 11y agoWe have someone at a partner university working on something like this. Also we had a first talk. The final idea would be that you design your process on ImagePlay. As soon as you are happy with the result we upload it to the web service.
- rebootthesystem 11y agoPlease change the title. If it requires compiling it is far from being "for Everybody". It definitely is a neat project. Like it.
- callumjones 11y agoIt doesn't require compiling on OS X and Windows, so for the most of "everybody" it's accessible.
- loomi 11y agoThanks for the clarification. Exactly for the "everybody" operating systems we provide a build. We hope soon to also sign them for even easier use.
- rebootthesystem 11y agoI 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. Probably nit-picking.
- loomi 11y agoI agree, the title might be a bit on the marketing side of things. (-, Sorry about that.
- rebootthesystem 11y agoNo worries. Are you the author? Great work! I looked at it quickly, will play with it more later. Do you have Dilation and Erosion in there? Does it do video or image sequences and related motion-relevant algorithms?
- oh_teh_meows 11y agoI 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.
- loomi 11y agoThanks for the pointer!
- rndn 11y agoLooks very nice. ImageJ is another great free image processing tool: http://imagej.nih.gov/ij/ http://imagej.nih.gov/ij/ I’ve used this for example for removing a gradient background from a photographed text document which worked really well.
- loomi 11y agoIndeed, we use ImageJ in our lab often. Mostly after we did prototype an idea really fast in ImagePlay.
- andybak 11y agoAny 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)
- loomi 11y agoThat is a great proposition. We added some pictures for now(not yet easy to find in OSX version). But I guess we will provide some simple process chains to start of.
- willcodeforfoo 11y agoAwesome! Tools that give you real-time feedback like this really help those learning image analysis/computer vision.
- loomi 11y agoThanks for the praise! Even more real-time if you use the webcam image loader. Than you get your real-time algorithm in real-time. (-,
- loomi 11y agoWe are looking for linux package maintainers to introduce ImagePlay to your favorite Linux distribution. Please get into contact: https://github.com/cpvrlab/ImagePlay/issues/57 https://github.com/cpvrlab/ImagePlay/issues/57
- Dobiasd 11y agoWow, 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?
- loomi 11y agoThanks for the praise! If you seriously consider to donate we look into a solution for that. What would the community like as platform?
- sebastianavina 11y agocan i recognize text with this app?
- loomi 11y agonope, this is not supported out of the box
- loomi 11y agoPlease find lots of bugs mentioned here fixed in the new ImagePlay 6.0.0-beta.4. https://news.ycombinator.com/item?id=10059506 https://news.ycombinator.com/item?id=10059506