IMAGE
- The type of image that this processor can process@Reference(type=Article,author="Telea, Alexandru",title="An Image Inpainting Technique Based on the Fast Marching Method.",year="2004",journal="J. Graphics, GPU, & Game Tools",pages={"23","34"},url="http://dblp.uni-trier.de/db/journals/jgtools/jgtools9.html#Telea04",number="1",volume="9",customData={"biburl","http://www.bibsonomy.org/bibtex/2b0bf54e265d011a8e1fe256e6fcf556b/dblp","ee","http://dx.doi.org/10.1080/10867651.2004.10487596","keywords","dblp"}) @Reference(type=Inproceedings,author="J. A. Sethian",title="A Fast Marching Level Set Method for Monotonically Advancing Fronts",year="1995",booktitle="Proc. Nat. Acad. Sci",pages={"1591","","1595"}) public abstract class AbstractFMMInpainter<IMAGE extends Image<?,IMAGE> & SinglebandImageProcessor.Processable<Float,FImage,IMAGE>> extends AbstractImageMaskInpainter<IMAGE>
FMM is used for computing the evolution of boundary moving in a direction
normal to itself. Formally, FMM approximates the solution to the Eikonal function
using an upwind
scheme.
The core algorithm implemented by the
The performInpainting(Image)
method follows these steps:
inpaint(int, int, Image)
method must be implemented by
subclasses to actually perform the inpainting operation
Modifier and Type | Field and Description |
---|---|
protected static byte |
BAND
Flag for pixels on the boundary
|
protected byte[][] |
flag
The working flag image
|
protected PriorityQueue<FValuePixel> |
heap
The working heap of pixels to process next
|
protected static byte |
KNOWN
Flag for pixels with a known value
|
protected FImage |
timeMap
The space-time map (T)
|
protected static byte |
UNKNOWN
Flag for pixels with an unknown value
|
mask
Constructor and Description |
---|
AbstractFMMInpainter() |
Modifier and Type | Method and Description |
---|---|
protected void |
initMask()
Perform any initialisation once the mask has been set.
|
protected abstract void |
inpaint(int x,
int y,
IMAGE image)
Inpaint the specified pixel of the given image.
|
void |
performInpainting(IMAGE image)
Perform the inpainting of the given image
|
protected float |
solveEikonalStep(int x1,
int y1,
int x2,
int y2)
Solve a step of the Eikonal equation.
|
processImage, setMask, setMask, setMask
protected static byte KNOWN
protected static byte BAND
protected static byte UNKNOWN
protected byte[][] flag
protected PriorityQueue<FValuePixel> heap
public AbstractFMMInpainter()
protected void initMask()
AbstractImageMaskInpainter
initMask
in class AbstractImageMaskInpainter<IMAGE extends Image<?,IMAGE> & SinglebandImageProcessor.Processable<Float,FImage,IMAGE>>
protected float solveEikonalStep(int x1, int y1, int x2, int y2)
x1
- x-position of first pixel (diagonally adjacent to the second)y1
- y-position of first pixel (diagonally adjacent to the second)x2
- x-position of second pixel (diagonally adjacent to the first)y2
- y-position of second pixel (diagonally adjacent to the first)public void performInpainting(IMAGE image)
AbstractImageMaskInpainter
performInpainting
in class AbstractImageMaskInpainter<IMAGE extends Image<?,IMAGE> & SinglebandImageProcessor.Processable<Float,FImage,IMAGE>>
image
- the image to inpaint