Rotation can be thought of as the equivalent of Visilog's
`Nearby pixel' rotation although strictly
speaking this may not quite be the case.
Here JAVA
performed adequately (
1.2 sec) being, on average, about a
second slower than Visilog's algorithm.
Compiled JAVA rotated a 256x256 image three times faster than
Visilog.
3x3 Gaussian smoothing is approximately five times slower (
6
secs) whereas
3x3 Mean (
5 sec), 5x5 Mean (
12 sec) and Median
smoothing (
7 sec) were
all about ten times slower in interpreted JAVA as compared to Visilog.
Compiled JAVA, in almost all cases here, performed faster than
Visilog. The striking difference occurred in the case of Gaussian
smoothing. This must be due to the algorithm employed by Visilog,
since the one implemented for the purposes of this project
involves approximately the same computational effort as the
algorithm for 3x3 Mean smoothing.
Noise generation was almost instant (<50 msec) due to
quick-and-dirty programming
and image arithmetic was just as fast. For addition of images, JAVA
(
0.3 sec) is about two times slower than Visilog.
Compiled JAVA performs these operations instantly (<50 msec).
Gamma correction takes a bit less than two seconds.
Visilog does not have a Gamma correction transform for comparison.
Thresholding (
0.4 sec) is almost as fast Visilog's.
Compiled JAVA performs thresholding extremely fast (<50 msec)
and gamma correction more than two times faster than interpreted
JAVA (
0.7 sec as opposed to 1.7 sec).
Thinning is a disappointment, as the JAVA program is approximately 20 times slower than Visilog (22 sec versus 0.4 sec for each of typically 10 or more iterations). This can be attributed to the inefficient algorithm implemented ( even compiled JAVA is five times slower than Visilog). The computational requirements of this algorithm therefore require compiled JAVA to be acceptable for educational uses, as well as a better algorithm.
3x3 Convolution takes, as was the case for 3x3 Gaussian, more
than ten times longer in interpreted JAVA (
6 sec vs
0.4 sec
compiled JAVA vs 0.9 sec Visilog).
This suggests
that Visilog's algorithm may be more general or have more
overhead due to multiple data-types and the requirements
of the full Visilog context.