View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

G15-Final-Report



CP 2005 CoWebParticipants Groups Projects Discussions Template


PRESENTING RESULTS FOR GROUP .....


Group Members : Brent Myers
  • Roles of Individuals
    • Brent:
      • Everything.

Final Results ( PREFER SIZES of about 800x600 )



one window replaced:
External Image

one window replaced:
External Image

one window replaced:
External Image

two windows replaced:
External Image

three windows replaced:
External Image

an open window instead of a bunch of closed windows:



External Image


What IMAGES were used ( PREFER SIZES of about 400x300)


External Image

External Image

External Image

External Image

DESCRIPTION


What were the goals?

The goal of the project was to automatically identify parts of images of standard corners in the Eixample district of Barcelona and use these pieces to generate false images of corners.

How stock footage was captured

Images were taken with a handheld camera without a tripod.

Other Material that was used (acquired!)

The only original images used were the four listed above.

Tools used and HOW?

Matlab.

Process for finding a window:
  • apply a laplacian of gaussian filter to the image and find the zero crossings

External Image

  • apply a morphological closing to the resulting binary image to remove noise and make the found zones more coherent

External Image

  • label each connected component in the image and find the one whose centroid is closest to the given point

  • use the bounding box of this component as the window

External Image

Process for placing a window into another image:
  • find the window to be replaced and the window to replace it with

  • make an image of a neighborhood around the image to be replaced

External Image

  • find the scaling factor for the height/width of the two windows

  • determine the size of the neighborhood around the window that will be inserted so that it will be the same size as the first neighborhood when resized by the scaling factor

External Image

  • resize the second neighborhood

External Image

  • create a mask for the location of the window in the images

External Image


External Image

  • insert the resulting patch back into the first image in the same spot it came from

External Image


Code or scripting (include as an attachment OR link)


Some of this code was taken from one of irfan's students websites (Rob Orr - http://www.cc.gatech.edu/classes/cs7321_98_winter/participants/rjo/) for their laplacian pyramid project
I modified this code to use a mask and to force the algorithm to merge two images that are not necessarily the same size or are not in the desired place in the image to merge.


http://www.prism.gatech.edu/~gtg004i/cp/findWindow.m finds the window in an image given a point
http://www.prism.gatech.edu/~gtg004i/cp/switchWindows.m given two points and two images, places a window from the second image into the window selected in the first image

these last four are the meat of the laplacian pyramid implementation and are unmodified from rob orr's page
http://www.prism.gatech.edu/~gtg004i/cp/reduce.m
http://www.prism.gatech.edu/~gtg004i/cp/expand.m
http://www.prism.gatech.edu/~gtg004i/cp/l_collapse.m
http://www.prism.gatech.edu/~gtg004i/cp/l_pyramid.m

What worked?


Windows that were well separated from neighboring windows or other facade decorations were easily detected.

What was unexpected?


How well the algorithm works on simple windows.

What did NOT work?


The algorithm does not work on windows that are close together or have too much decoration between them. Also, any windows on the sides of the building may be detected decently, but since the algorithm returns a bounding box, there is an area on the top and bottom that is undesired.

How would you fix it?


I could use the convex hull of the window or just the polygon bordering the area, however this is much less clean for the straight on windows and would not look as good. Also, this is much more difficult to implement since it is no longer a rectangular area and it is harder to stretch the images to match each other when they might be different shapes.

Thoughts for the future of this effort?


This algorithm might be improved by using full resolution images (I was using scaled down images to cut down on processing time)

Other detials and DOCUMENTATION.




CP 2005 CoWebParticipants Groups Projects Discussions Template





Links to this Page