Assigned: 2011/10/20
Due: 2011/11/09 11:59pm
Author: Shuen-Huei (Drake) Guan, D99944013
url: http://www.csie.ntu.edu.tw/~cyy/courses/comphoto/11fall/assignments/proj1/
In the class, we have introduced a bunch of edge-aware filtering: bilateral, WLS, Local extrema, Diffusion map, Domain transform, Local Laplacian, L0 minimization and Guided filter. In this assignment, you have three options. For the first option, you have to implement one of Local extrema or Diffusion map (which do not have their source codes released). You are free to use any language of your choice. For the second option, you can implement one of the following filters, bilateral, WLS, Guided filter, Domain transform, local Laplacian and L0 minimization (which have made their matlab codes publically available) with a language other than matlab. In the third option, you are asked to compare at least three of the following filters, bilateral, WLS, Guided filter, Domain transform, local Laplacian and L0 minimization (which have made their code publically available). Note that, since these options have different levels of difficulty, option #1 has the highest baseline grade, followed by option #2 and option #3 has the lowest. You are asked to use detail manipulation as the example to illustrate your filter or to compare filters. Other applications will be counted as bonus.
- Option #1 is chose for this assignment, plus the option #3's testing.
- Local Extrema filtering is implemented as matlab.
- Other filters are from copied from authors' web page. See the last part of this document for further information.
- The interpolation function in Colorization Using Optimization is used.
- For some reason, I might not test all filtering algorithms.
- There are around 8 testing images located in input_images.
- The resulting images are located in result.
- For each combination of one filter and one testing image, the resulting images are named as:
- image name_function name_by_filter name
- function name: smoothed(M), detail(D), enhanced(D*2+M)
- function name: plot_IMD: plotting of one line for its I, M, D.
- filter name: wlsFilter, bilateralFilter, localExtrema, domainTransform, guidedFilter, l0Minimization, ...
The whole testing process is in testSmooth.m. Just take a look at it and play with it.
Those input/testing images are gathered from each research mentioned, including two images from this assignment webpage. They are already converted to JPEG with quality of 95 for lesser image size to fit GitHub. I don't own any of those images and they are just used as a research study and course assignment.
For each filtering, the plotting of flower is demonstrated here. I just randomly pick one line from the image (actually, I pick the line with one-third height). The original input image is Blue, the smoothed one is Green, and the detail(the difference between input and smoothed one) is Red.
For more plotting, please go to result/plot.
Here, I apply the Local Extrema Filter to an open source movie, Sintel, the Durian Open Movie Proejct. The first one is just the smoothed version, mimicing the NPR effect. The second one (if generated) is the edge-enhanced version.
Youtube: Sintel - Third Open Movie by Blender Foundation
Youtube: Sintel by Local Extrema
- S. Paris and F. Durand, A Fast Approximation of the Bilateral Filter Using a Signal Processing Approach, IJCV 2009. (matlab code)
- Z. Farbman, R. Fattal, D. Lischinski, R. Szeliski, Edge-Preserving Decompositions for Multi-Scale Tone and Detail Manipulation, SIGGRAPH 2008. (matlab code)
- K. Subr, C. Soler, F. Durand, Edge-Preserving Multiscale Image Decomposition Based on Local Extrema, SIGGRAPH Asia 2009.
- Z. Farbman, R. Fattal, D. Lischinski, Diffusion Maps for Edge-Aware Image Editing, SIGGRAPH Asia 2010.
- E. Gastal, M. Oliveira, Domain Transform for Edge-Aware Image and Video Processing, SIGGRAPH 2011. (matlab code)
- S. Paris, S. Hasinoff, J. Kautz, Local Laplacian Filters: Edge-Aware Image Processing with a Laplacian Pyramid, SIGGRAPH 2011. (matlab code)
- L. Xu, C. Lu, Y. Xu, J. Jia, Image smoothing via L0 Gradient Minimization, SIGGRAPH Asia 2011. (matlab code)
- K. He, J. Sun, X. Tang, Guided Image Filtering, ECCV 2010. (matlab code)