answer sheet

advertisement

Alex Storer

5/6/04

Part A.

Original Image Applying Edgegray Template

Applying Dilation Template Applying Threshold Template

Analysis

This series of templates did not seem to do a particularly good job in extracting the ravine-like features of the image. The long lines here are not well distinguished from the remainder of the image, which and they are really not much more pronounced than they initially were.

As a note, it seems that the edgegray template did not function the way it was intended, because its output was not grayscale in the steady state. Reducing tau from 5 (which is shown) to 1 yields the following string of outputs:

Original Image Applying Edgegray Template

Applying Dilation Template Applying Threshold Template

In the end, this seems to have done little to effect the final result. Regardless of the performance of this edgegray template, however, it appears that the inputs are set correctly for these templates, as the dilation and thresholding occurs as one would expect.

On the whole, this is not a satisfactory scheme to detect ravines.

If, however, we change the initial state of the edgegray template to arbitrary, and do not let it reach steady state, using tau around 1, we get the following:

Original Image Applying Edgegray Template

Applying Dilation Template Applying Threshold Template

This is actually a much more useful ravine detector, as it isolates the long lines from the remainder of the image. Of course, this requires some tweaking of the edgegray template, by not letting it reach (or approach) steady state, but the initial state of a picture is not an unreasonable thing to have on the CNN. After this, the dilation and threshold templates work perfectly off the bat, that is, they do take in the correct input.

Part B.

(a)

Original Averaged

Because I often have difficulty translating the template file into A/B/Z notation, here is the file:

NEIGHBORHOOD: 1

FEEDBACK:

0 0 0

0 0 0

0 0 0

CURRENT: 0

CONTROL:

0.11111 0.11111 0.11111

0.11111 0.11111 0.11111

0.11111 0.11111 0.11111

The logic of this template is that each neighboring cell will contribute equally to the final value of the cell. Ideally, I would include 1/9, which approximates to 0.111…, but rounding it off appears to have little effect.

A is the feedback, B is the control and Z is the current.

Average Template:

0

0

0

A

0

0

0

0

0

0

B

0.11111 0.11111 0.11111

0.11111 0.11111 0.11111

0.11111 0.11111 0.11111

Z

0

Network Settings

Input

Initial State

Boundary Condition

Picture

Arbitrary

Zero-flux

Running Time (tau CNN) 10 (this is more than adequate)

This template smooths the image, losing fine detail. Thus, high-frequencies are lost and low frequencies maintained – a lowpass filter.

(b)

The Laplacian is generally used to extract fine detail from images – a high pass filter.

One way to smooth the image, would be to subtract out these details, essentially subtracting the Laplacian from the original image.

Original Laplacian Averaged

Average Template:

0

-1

0

A

-1

3

-1

0

-1

0

0

0

0

B

0

0

0

Input

Initial State

Boundary Condition

Running Time (tau CNN)

Network Settings

0

0

0

(c)

Averaged

Undefined

Picture

Zero-flux

1

Binary Edge Detected

Z

0

Here, we are able to create a template that only preserves fairly pronounced structures.

FEEDBACK:

0 0 0

0 2 0

0 0 0

CURRENT: -0.1

CONTROL:

-1.0 -1.0 -1.0

-1.0 8.0 -1.0

-1.0 -1.0 -1.0

Edge Template:

0

0

0

A

0

2

0

0

0

0

-1

-1

-1

B

-1

8

-1

-1

-1

-1

Z

-0.1

Network Settings

Input

Initial State

Boundary Condition

Picture

Arbitrary

Zero-flux

Running Time (tau CNN) 10

(d)

After a bit of experimentation, it seems as though one simple erosion takes care of a fair amount of noise reduction as follows:

Binary Edge Detected Eroded

Edge Template:

A

0

0

0

0

0

0

0

0

0

0

0

0

B

1

1

0

Input

Initial State

Boundary Condition

Running Time (tau CNN)

Then, we remove solitary pixels.

Eroded

Network Settings

0

1

1

Picture

Arbitrary

Zero-flux

2

De-pixeled

Z

-3

0

0

0

A

0

1

0

0

0

0

1

1

1

B

1

8

1

Input

Initial State

Boundary Condition

Running Time (tau CNN)

Network Settings

1

1

1

Picture

Arbitrary

Zero-flux

2

Z

-1

Now we must find a way to reconnect these lines which are weak. Using the Figure

Reconstructor template, we can do this. Set the Depixeled image as the initial state, and the raw edge-detected image as the input, and you can get the following:

De-pixeled Reconstructed

0.5

0.5

0.5

A

0.5

4.0

0.5

0.5

0.5

0.5

0

0

0

B

0

4

0

0

0

0

Input

Initial State

Boundary Condition

Running Time (tau CNN)

Network Settings

Edge Detected Image

De-Pixeled Image

Fixed-Value: 0

5

Z

3

So this entire process goes from:

Original Reconstructed

And this is the process that we will use for our algorithm.

Laplacian Lowpass

Input: ~

Initial State: Mars image

Time: 1 tau

Edge Detection

Input: Laplacian Output

Initial State: ~

Time: 10 tau

Erosion

Input: Edge detection output

Initial State: ~

Time: 2 tau

Pixel Deletion

Input: Erosion output

Initial State: ~

Time: 2 tau

Figure Reconstruction

Input: EdgeDetection output

Initial State: DePixel output

Time: 5 tau

Total time = 1+10+2+2+5 = 20 tau

20 tau = 2000 ns = 2 us

Download