I have implemented a Sobel filter for edge detection in Matlab without using its toolbox. I am a bit confused:

Is a Sobel filter a type of Cellular Neural Network?

Both Sobel and Cellular Neural Network calculate output via its neighborhood cells.


You're right about the basic arrangement of the inputs, but there are a number of differences:

  1. Artificial neural networks typically use exemplar data as inputs for the purpose of training, or adjusting the weights of its internal connections, to accurately classify them within a certain error range. The network is then applied to unknown data to classify them. Edge detection filters are just blind operators that transform input data regardless of how it can be classified. There is no training, so any intelligence exists only in the mind of the filter developer.

  2. A CNN could be trained to be an effective Sobel (edge detection) filter, as described in this paper, but a Sobel filter couldn't be an effective learning algorithm.

  3. Training neural networks is more non-deterministic, with outputs depending on what data they are trained with and potentially even the operational computations that are used for classification. Applying filters is typically deterministic, i.e. they will transform the same data exactly the same way if applied twice.

One succinct way of expressing the biggest difference is: a cellular neural network is looking for a function, while a Sobel filter is a function.

Note that there are types of neural networks called Convolutional Neural Networks, which can use Sobel and other filters in their input layers, as described here. Though, these are neither of the things you are asking about. :)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.