Saturday, May 23, 2009

Post GSoC Additions

Additions or Modification made after GSoC:
  1. GUI improvements in the standalone version
    • Selection contour
    • Center images
    • Checkered background

  2. Algorithm improvements
  3. Synchronized with trunk (only required resolving CMakeList.txt conflicts)
Upcoming changes:
  1. Write out the mask in the pto file
  2. Port GUI updates from standalone app to hugin
  3. The ImageCache doesn't support loading alpha channel from the original file. The transparent parts are black. This needs to be fixed.
  4. Fix a crash in hugin when changing masking algorithms

Monday, August 11, 2008

11th Week (Aug 5 - Aug 11)

1. Further work on Load/Store mask
It is now possible to store the bitmap mask while saving the project. However I haven't yet figure out a good way to pass the edited alpha channel to the stitchers used by the preview frame or use the transformation library.
2. Bug fix:
a) fixed crash while changing mask editing mode
b) fixed editing problem while zoomed in/out
3. Wiki updated.

Not done yet:
==========
1. Work on remapping
2. Pre-segmentation in lazy snapping
3. Lazy snapping polygon boundary editing. Implement contour finding.

12th Week (Aug 12 - Aug 18) [Aug 18th is final day for uploading code]
1. Allow editing the vertices of the polygon in the polygon editing mode
2. Store the mask after proper scaling
3. Preliminary implementation for pre-segmentation and contour finding
4. Update design documents

Tuesday, August 5, 2008

10th Week (July 29 - Aug 4)

1st half of 10th Week July 29 - July 31
1. Implemented Undo/Redo feature for basic polygon editing (only available in standalone maskeditor)
2. Implement image loading by using remapped images from PreviewPanel
However the edited alpha layer needs to be fed from the MaskEdEditWnd

2nd half of 10th Week (July 29 - Aug 4)
1. Improve usability. Determine which image is being edited, polygon editing
Implemented in integrated version. Basically if a single image is chosen then that image is considered as being edited otherwise the last image of multiple selection is considered the top image
2. Fixed mask editing bug. The polyed_basic can be used to edit mask. However there's another bug that prevents changing mask editing mode. This will be fixed in the next commit.
3. Further work on integration. Use edited alpha layer.
There's still some work to do here. Basically converting from wxBitmap to BImage and using that mask.

Not done yet:
==============
1. Load/Store mask
This hasn't been implemented yet. I'm thinking about doing an inverse mapping of the mask created from the preview mode and incorporating it with the original file.


11th Week (Aug 5 - Aug 11) [Aug 11 is suggested pencils down]
1. Further work on Load/Store mask
2. Work on remapping
3. Usability: work on zooming
4. Pre-segmentation in lazy snapping
5. Lazy snapping polygon boundary editing. Implement contour finding.

12th Week (Aug 12 - Aug 18) [Aug 18th is final day for uploading code]
1. Usability
2. Integration

9th Week (July 22 - July 28)

1. MaskEdEditWnd integration with PreviewFrame
It is now possible to switch to Mask Editor mode. However image loading needs to be modified. I'm thinking of using the UpdatePreview implemented in PreviewPanel to create individual remapped image and then feeding that to MaskEdEditWnd as well as MaskMgr.

31st July
1. Undo/Redo feature for basic polygon editing
2. Implement image loading as describe above
3. Incorporate pre-segmentation step in lazy snapping
4. Load/Store mask

10th Week (July 29 - Aug 4)
1. Further work on Load/Store mask
2. Implement basic mechanism for doing remapping
3. Improve usability. Determine which image is being edited, polygon editing
4. Further work on integration
5. Lazy snapping polygon boundary editing.


11th Week (Aug 5 - Aug 11) [Aug 11 is suggested pencils down]
1. Further work on remapping
2. Usability: work on zooming
3. Integration

12th Week (Aug 12 - Aug 18) [Aug 18th is final day for uploading code]
1. Usability
2. Integration

Tuesday, July 22, 2008

8th Week (July 15 - July 21)

1. Work on fixing lazysnapping
Lazy Snapping is working now however it needs some improvement in terms of speed and performance.
2. Started working on integration with Hugin.
a)merged from trunk to branch.
b)Changed build system. Now the maskeditor core and segmentation routines are built as libraries which can be used by either the standalone gui or hugin.
c)Started modifying PreviewFrame to incorporate MaskEdEditWnd

Not done yet:
=============
1. Determine which image is being edited

9th Week (July 22 - July 28)
1. Undo/Redo feature
2. Load/Store mask
3. Further work on integration. In particular allow basic polygon editing.
4. Incorporate pre-segmentation step in lazy snapping.

10th Week (July 29 - Aug 4)
1. Further work on Load/Store mask
2. Implement basic mechanism for doing remapping
3. Improve usability. Determine which image is being edited, polygon editing
4. Further work on integration
5. Lazy snapping polygon boundary editing.


11th Week (Aug 5 - Aug 11) [Aug 11 is suggested pencils down]
1. Further work on remapping
2. Usability: work on zooming
3. Integration

12th Week (Aug 12 - Aug 18) [Aug 18th is final day for uploading code]
1. Usability
2. Integration

Monday, July 14, 2008

Status Report (July 8 - July 14)

7th week
1. Used crop information to determine overlapped rectangular region
2. Preview window now allows (de)selecting images.
however editing option isn't updated yet.
3. Fixed clustering problem in LazySnapping. However there're still some other bugs.

Plan for next 3 weeks:
================
8th Week (July 15 - July 21)
1. Determine which image is being edited
2. Start working on integration with Hugin. In particular allow switching between preview mode and mask editing mode
3. Work on fixing lazysnapping

9th Week (July 22 - July 28)
1. Undo/Redo feature
2. Load/Store mask
3. Further work on integration (I'll determine the deliverables on 8th week)
4. Further work on lazysnapping. If its working properly then incorporate pre-segmentation step.

10th Week (July 29 - Aug 4)
1. Implement basic mechanism for doing remapping
2. Improve usability
3. Further work on integration

Friday, July 11, 2008

Status Report (July 1 - July 7)

6th week (July 1 - July 7)
1. Implemented LazySnapping without watershed filtering. The implementation doesn't quite work yet.
At the moment I'm using a naive implementation of K-means. But I'm thinking of using the implementation provided at http://www.cs.umd.edu/~mount/Projects/KMeans/ (release under GPL)
2. add option for choosing segmentation technique
Initially basic polygon editing is chosen. This can be changed from Edit->Preferences. The segmentation technique can be changed anytime. However the previous masks (if any) are discarded. Later on I'll provide option for reusing previous mask.

Not done yet
--------------
1. Working implementation of LazySnapping.
2. Did not make use of watershed filtering. I'm thinking of just using watershed.cxx code which is part of VIGRA examples. The only thing I'll need to do is build a graph from the output of the watershed algorithm.


Plan for second phase:
---------------------------
For the second phase I'm planning to give high priority to integration and usability (eg. fast response, easily going back and forth between different images that are edited) and slightly lower priority to fine-tuning, and specialized mask creation. Plan for the next three weeks is as follows -


7th week (July 8 - July 14) Midterm evaluation week
1. Apply segmentation on the overlapped region
2. work on preview window (eg. show images that are selected and not selected)
This is basically giving a preview of loaded images. I'll keep it very simple for now.
3. Select multiple images for display
4. Work on LazySnapping. I'll mainly be focusing on the part without watershed filtering.
5. Determine which image is being edited

8th Week (July 15 - July 21)

2. Start working on integration with Hugin
3. Start working on fine-tuning mask in polygon mode
4. Do further improvement of lazysnapping.

9th Week (July 22 - July 28)
1. Undo/Redo feature
2. Load/Store mask
3. Further work on integration (I'll determine the deliverables on 8th week)