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:
A B Z
0 0 0 0.11111 0.11111 0.11111 0
0 0 0 0.11111 0.11111 0.11111
0 0 0 0.11111 0.11111 0.11111
Network Settings
Input Picture
Initial State Arbitrary
Boundary Condition 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:
A B Z
0 -1 0 0 0 0 0
-1 3 -1 0 0 0
0 -1 0 0 0 0
Network Settings
Input Undefined
Initial State Picture
Boundary Condition Zero-flux
Running Time (tau CNN) 1
(c)
Averaged Binary Edge Detected
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:
A B Z
0 0 0 -1 -1 -1 -0.1
0 2 0 -1 8 -1
0 0 0 -1 -1 -1
Network Settings
Input Picture
Initial State Arbitrary
Boundary Condition 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 B Z
0 0 0 0 1 0 -3
0 0 0 0 1 1
0 0 0 0 0 1
Network Settings
Input Picture
Initial State Arbitrary
Boundary Condition Zero-flux
Running Time (tau CNN) 2
Then, we remove solitary pixels.
Eroded De-pixeled
A B Z
0 0 0 1 1 1 -1
0 1 0 1 8 1
0 0 0 1 1 1
Network Settings
Input Picture
Initial State Arbitrary
Boundary Condition Zero-flux
Running Time (tau CNN) 2
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
A B Z
0.5 0.5 0.5 0 0 0 3
0.5 4.0 0.5 0 4 0
0.5 0.5 0.5 0 0 0
Network Settings
Input Edge Detected Image
Initial State De-Pixeled Image
Boundary Condition Fixed-Value: 0
Running Time (tau CNN) 5
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