# Final Project: Image Matting

## ha4

May 18, 2011

## Project Overview

## This project was
inspired by the survey report “Image and Video Matting: A Survey” by J. Wang and M. Cohen. As mentioned in this report, there are numerous
techniques to solve matting problem. For the final project, I implemented the
CVPR 2006 paper “Closed-form
Matting” by A. Levin et al.

## Development Environment

## ·
MS Visual Studio 2008 C++ 32bit

## ·
Library: OpenCV 2.2.0

## ·
OS: MS Windows 7 64bit

## Closed-form Matting Algorithm

## 1.
The Matting Equations

## Matting is an
under-constrained problem as shown below.

## ------------------------------------- (1)

## ·
* - The Color of the i-th pixel*

## ·
* - The Background Color of the
i-th pixel*

## ·
* - The Foreground Color of the
i-th pixel*

## ·
*- Foreground Opacity of the i0th pixel *

## For a 3 channel color
image, 7 unknowns but 3 constraints per pixel!

## 2.
Other Approaches

## 3.
Closed-form Matting
of “Grayscale” images

## Assume that both F
and B are “approximately constant” over a small window around each
pixel. By this assumption equation (1) can be rewritten as

* *≈ *a** *+ *b *, ∀*i** *∈ *w*------------------------------
(2)

## ·
*a = 1 / F - B*

## ·
*b = -B / F - B *

## ·
*w – small image window *

## 4.
Cost function

## Finding a,* a, b *minimizing this
const function,

## --------(3)

## ·
*wj** –a small
window around pixel j*

## ·
*eps** – a
regularization term *

## J is quadratic in a,* a *and* b *with
3N unknowns for an image with N pixels

## 5.
Laplacian

##

## Project Results using Levin’s Algorithm

## Future Works

## Because the OpenCV’s sparse linear solver function “cv::solve” doesn’t accept the sparse matrix of OpenCV(“cv

::SparseMat”), I should make a
dense matrix(“cv::Mat”) with many zeros instead of a sparse
matrix to use the solver function. This operation not only takes lots of time,
but also doesn’t support image size of bigger than 10,000 pixels, because cv::Mat’s size is limited to
10,000 by 10,000.