New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Planning Issue for the Image Sequencer GSoC Project #23

Closed
ccpandhare opened this Issue Jun 3, 2017 · 15 comments

Comments

2 participants
@ccpandhare
Copy link
Collaborator

ccpandhare commented Jun 3, 2017

This is my plan for the summer. Please suggest any suggestions which you may deem fit @jywarren @ebarry. There is still a lot to be written here, will keep adding more points with time. This is by no means, exhaustive.
Link to my proposal

Phase 1 : Core functionality and JSON Input Support

In this phase I will build upon the core fuctions of Image Sequencer (addSteps, removeSteps, insertSteps, loadImage)

  • Create function addSteps which accepts data in many formats (JSON and otherwise) as described in the development wiki (PR #24)
  • Create the system to be used for handling images : Instead of choosing Sharp or Jimp or lwip, I stuck to plain old DataURIs in custom Image objects. As the mentioned modules have huge functionalities which are not relevant to Image Sequencer. (PR #24)
  • Create the framework for using multiple images : Finally enables Image Sequencer to handle multiple images at once. (PR #24)
  • Similarly, create removeSteps, insertSteps, loadImages and modify run (PR #24)
  • Update Usage Instructions in Readme.md

Phase 2 : Unit Tests, Modularization, Unified Input Parsing

  • Unit Tests for the methods addSteps, removeSteps, insertSteps, run (PR #28)
  • Image Based Unit Tests : Double Inversion Test, NDVI Test (PR #30)
  • Unified Input Parser : A Single Module to parse inputs in different formats - reduces source size and helps manage code. (PR #28)
  • Modularization of large functions which were earlier a part of src/ImageSequencer.js (PR #28)

Phase 3 : Module Logs, custom I/O, headless testing, Chaining, replaceImage

  • Headless Browser Testing using the tape-run module. (PR #55)
  • Method Chaining (PR #44, #53)
  • Added Invert Module (PR #30)
  • replaceImage Created, and along with it, its gh-pages demo. (PR #35)
  • Create a module log. This will store logs from various modules. Useful for debugging. (PR #37)
  • Allow modules to interact with the user, accept and output data apart from images. (example: data of a QR Code)

Phase 4 : User Interface, Support external Images

  • Create Module Interface (PR #67 ISS #85)
  • Create the User Interface for node based and browser based implementations of Image Sequencer. (Across various PRs)
  • local image support on Browser (PR #81)
  • URL image support on Browser (PR #81)
  • URL image support on Node.JS (PR #81)

Phase 5 : Additional New Features

  • Added method .exportBinary() to export images as binary (NodeJS) (PR #90)
  • Image testing using pixel-by-pixel comparison with a tolerance level (PR #89)
  • Describing module requirements using an info.json file for every module. (PR #92)
  • Implemented Complete demo (PR #92)
  • Added Basic Command Line Interface (CLI) (PR #95)
  • Publish demos to GH-Pages (PR #96)

Phase 6 : Module Implementation & NPM

This phase involves implementing the various modules as mentioned in the Readme.md and my project proposal.

  • Publish to NPM
  • FisheyeGl (PR #61)
  • Crop (PR #56)
  • Invert
  • Segmented Colormap (PR #57)
  • QR Code Module (PR #72)
@jywarren

This comment has been minimized.

Copy link

jywarren commented Jun 4, 2017

@ccpandhare

This comment has been minimized.

Copy link
Collaborator Author

ccpandhare commented Jun 4, 2017

Okay, I will look into it and let you know if I face any issues.

@ccpandhare

This comment has been minimized.

Copy link
Collaborator Author

ccpandhare commented Jun 24, 2017

encourage adding a really clear test that processes an NDVI image and does a diff comparison between a "before" and a known "after" image, that we can visually confirm.

I am not sure on how this is to be done. Please help me out @jywarren

@jywarren

This comment has been minimized.

Copy link

jywarren commented Jun 24, 2017

@ccpandhare

This comment has been minimized.

Copy link
Collaborator Author

ccpandhare commented Jun 26, 2017

Okay, Thanks! Will do that.

@jywarren

This comment has been minimized.

Copy link

jywarren commented Jun 30, 2017

Ok! Now let's find, on the public lab site, a clear before/after NDVI image and get ImageSequencer to reproduce it. Ask Ned Horning or Chris Fastie!

@jywarren

This comment has been minimized.

Copy link

jywarren commented Jun 30, 2017

Also, can you merge to gh-pages branch so we can update the online demo?

@ccpandhare

This comment has been minimized.

Copy link
Collaborator Author

ccpandhare commented Jun 30, 2017

Ok! Now let's find, on the public lab site, a clear before/after NDVI image and get ImageSequencer to reproduce it. Ask Ned Horning or Chris Fastie!

Can I generate one from Infragram?

@ccpandhare

This comment has been minimized.

Copy link
Collaborator Author

ccpandhare commented Jun 30, 2017

I had a quick check. The results from Image Sequencer are very different from those of Infragram

@jywarren

This comment has been minimized.

Copy link

jywarren commented Jun 30, 2017

@ccpandhare ccpandhare added this to Things to Work On in Image Sequencer GSoC Project Jul 3, 2017

@ccpandhare ccpandhare moved this from Things to Work On to In Progress in Image Sequencer GSoC Project Jul 3, 2017

@jywarren

This comment has been minimized.

Copy link

jywarren commented Jul 16, 2017

Really coming along here!

The fisheye module really starts to dig us into user interface and options setting stuff.

Another thing we may want to add is -- can modules access information from previous modules? Say, if we had a module that produced a certain output, could we pass that information on to later modules to use? I don't know -- say, a decoded QR code, or... extracted EXIF data?

@jywarren

This comment has been minimized.

Copy link

jywarren commented Jul 17, 2017

For example, what if we included a QR code in an image and it generated metadata available to the sequencer modules? I'm thinking about for example a colored backdrop with a qr code which, when you photo it, runs a particular module automatically or something.

This is probably thinking too far ahead :-) let's think interface for now!

@ccpandhare

This comment has been minimized.

Copy link
Collaborator Author

ccpandhare commented Jul 17, 2017

Well that sure is a possibility, and I am sure it can be done!
But yes, UI should be implemented first :D

@ccpandhare

This comment has been minimized.

Copy link
Collaborator Author

ccpandhare commented Jul 17, 2017

Another thing we may want to add is -- can modules access information from previous modules? Say, if we had a module that produced a certain output, could we pass that information on to later modules to use? I don't know -- say, a decoded QR code, or... extracted EXIF data?

Well yes! I think I can add this after the UI

@ccpandhare ccpandhare assigned ccpandhare and unassigned ccpandhare Aug 22, 2017

@jywarren

This comment has been minimized.

Copy link

jywarren commented Sep 9, 2017

I think we can close this out now! But let's clean up the issues a bit as well. Congrats!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment