This past summer, myself, Chinmay led a project (mentored by Jeff) as part of Google Summer of Co...
Public Lab is an open community which collaboratively develops accessible, open source, Do-It-Yourself technologies for investigating local environmental health and justice issues.
Public Lab chatroom
Reset your password
Read more: publiclab.org/n/15066
This past summer, myself, Chinmay led a project (mentored by Jeff) as part of Google Summer of Code to develop a new library to do general-purpose image processing and analysis. This post introduces that new library, Image Sequencer.
Image Sequencer (GitHub, demo) is different from other image processing systems in that it's non-destructive: instead of modifying the original image, it creates a new image at each step in a sequence. This is because it:
How does this compare to a typical image editing workflow?
As you can see, Image Sequencer lets you see the steps in order, not just the output. And if you want to change an earlier step, you can do that and the subsequent images will be updated -- the change will cascade down the sequence. It's a little like going back in time and changing the past... well, a LITTLE like that :-)
Image Sequencer can be used in both NodeJS and in the browser; it can also be used on the command line, and works the same way in each environment.
As of today, the core functionality (addition of a step, removal of a step, insertion of a step, etc.) has been implemented, and there are basic tests. There are a few modules present. Most calculations aren't GPU accelerated, but some modules are (standardization of this would require a NodeJS WebGL solution). Of course, it's not as efficient as a C-based program like ImageMagick or Photoshop -- there can be a lag when images larger than 700KB are handled.
How to begin using Image Sequencer on your webpage or in your code, real fast.
CLI: $ ./index.js -i [PATH] -s step-name
$ ./index.js -i [PATH] -s step-name
NodeJS: $ npm install image-sequencer
$ npm install image-sequencer
Try it out yourself here: https://publiclab.github.io/image-sequencer/
There's a lot left to do to help this reach its potential. We are actively seeking help in building more modules and refining the architecture -- to get involved, please check it out on Github and see where you can pitch in!
For starters, can you think of other uses? Some we've thought of include:
We'd love to include demos of some of these!
Chinmay Pandhare : I am a student at BITS Pilani, India with an interest for image processing - which led to me contributing to Image Sequencer in its early stages. After my Google Summer of Code proposal for Image Sequencer got accepted, I worked towards developing the library under Jeff's mentorship, who, by the way, is an excellent guide!
Jeffrey Warren : (GitHub jywarren) I was involved in developing the library concept and was a mentor for Chinmay for 2017's Google Summer of Code program. Chinmay was fantastic to work with! We have been needing a way to do sequential image processing for our Infragram project (infragram.org) and for other environmental-science related image processing work at PublicLab.org -- anything from dust analysis to quantifying water turbidity. We're always looking for ways to make infrastructure that serves a broader need, and to work with others around open source, general-purpose tools.
You must be logged in to comment.