Hi First of all I want to thank GSoC evaluation crew for choosing this project. I'm very excited to work on the Piosson Image Editing project this summer. I hope that Oiio developers and users will find my work useful :)
Jeremy, your questions are very reasonable. > - How does Poisson Image Editing differ from Gradient Domain compositing? > Why did you recommend implementing the former and not the latter? (It's ok > if the answer is "I've implemented poisson before and am thus more confident > in doing it again.") I don't know what exactly Gradient Domain compositing is but Poisson image editing also uses gradients during computations. Besides I'm more confident in Poisson because I've implemented Poisson image cloning earlier :) > - Can you point us to a paper to learn more about the specific version of > the algorithm you plan on implementing? The main paper I'm basing you can find here: http://cs.engr.uky.edu/~jacobs/classes/2010_photo/readings/PoissonImageEditing.pdf > - What is the 'Big O' for this algorithm in terms of input image resolution? > I.e., how long will it (roughly) take to process a 1K image? 2K? 4K? It depends on sparse linear system solver and matrix dimension (NxN, where N is number of unknown/cloned/computed pixels). > - Brainstorming here... Is there a way to produce an image representation of > the output of the poission transform? I.e., Is it sensical to expose two > operations: ConvertRGBImageToPoissonImage, ConvertPoissonImageToRGBImage. > Then in a node-based compositor (nuke), or command-line tool (oiiotool), we > could chain together operations to explore whats possible. For example, > convert two images to poission. Do an A over B (using alphas!) and then > convert back to RGB. Is it sensical to expose the code in this way? Can > all of the clever applications (seamless cloning, image completion, mixed > gradients, local illumination changes) be expressed as compositing > operations operating on the spatial representation of poisson intermediate > outputs? Poisson image editing is rather a transformation function, not a state so I guess there is no such thing as PoissonImage and convert operations between RGB image and PoissonImage. > - Step one is to spec out the public ImageBufAlgo API for the core > transform(s) (as referenced above). > > Enter your pseudo-code API Here: > :) I don't have a lot of time right now but ASAP I'll think it through and propose a pseudo-code API in a few days time. > - Tell me about Poisson and temporal stability... (such as if you were to > use cloning on a frame sequence). It depends on resolution of images. I was using it for seamlessly merging a set of images during terrain generation. > - Tell me about Poisson and RGBA images... (with alpha) Come to think of > it... how is color handled at all? Is each channel handled independently or > is this processed more in a luma/chroma space? Each channel is handled independently. I know that my answers might not be as clear as you would wish but I hope that when I'll post an api proposition it will explain much more :) Also please take a look at the paper I'm basing. Cheers, Lukasz _______________________________________________ Oiio-dev mailing list Oiio-dev@lists.openimageio.org http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org