Vincent DeVito Computer Systems Lab 2009-2010 The goal of my project is to take an image input, artificially blur it using a known blur kernel, then using deconvolution to deblur and restore the image, then run a last step to reduce the noise of the image. The goal is to have the input and output images be identical with a blurry intermediate image. The final step is then to estimate the blur kernel of an image with an unknown blur kernel. Running goal for image processors and photo editors Many methods of deconvolution exist Many utilize the Fourier Transform Current progress focused on blur kernel estimation Better kernel more accurate, clear output image The group of Lu Yuan, et al. designed project with blurry/noisy image pairs Blurry image intensity + noisy image sharpness + deconvolution = sharp, deblurred output image The group of Rob Fergus, et al. designed project to estimate blur kernel from naturally blurred image A few inputs + kernel estimation algorithm + deconvolution = deblurred output image with few artifacts Photography Improve image quality Restore image From Fergus, et al. Machine Vision Requires input images to be of good clarity Blur could ruin techniques such as edge detection Intermediate step Extremely useful for convolution and deconvolution Convert image to frequency domain Utilize the formula eθi = cosθ + isinθ Usually display the magnitude, since DFT produces complex number (a + bi). Magnitude = (a2 + b2)1/2 Scale to 0-255 range O(n2) Separate sums 1D DFT in one direction (vertical/horizontal), then in the other O(nlog2n) Inverse Fourier Transform converts back to spatial domain Also possible to separate Need full complex number from DFT or FFT Original Picture Magnitude Only Phase Only Successful FFT and IFFT program Successful convolution program Takes any image (square image of size 128x128 or smaller for best runtime) and blurs it using any given blur kernel Start to image deconvolution using a given kernel Inconsistent and somewhat noisy Fix deconvolution algorithm Inconsistent and produces large, clustered values Need a new transform or more research into kernel types Noise reduction Research into deconvolution based on kernel type