User:Gintsasn/Multi-Dimensional Edge Detection

Edge detection in multi-dimensional data is important operation in computer vision  as well as in number of other related fields. In the context of image processing, edges refer to places in multi-dimensional image where sudden changes in value (colour) or derivative of value occur. Multi-dimensional edge detection is generalisation of two dimensional edge detection  and one dimensional  step detection  for unbounded number of dimensions.

Background
In many advanced imaging applications we are dealing with three dimensional images. This is particularly prominent is medical imaging, where a medical scanner, such as MRI, will acquire multiple parallel image planes, effectively producing a three dimensional image. Detecting surface planes in such image helps to reconstruct and model scanned three-dimensional objects.

Besides the obvious application in processing three dimensional imaging, multidimensional edge detection is used in range of other fields, such as analysing seismic data and finding stratigraphic or lithological boundaries.

Edge detection by hypersurface fitting
One method to define operators for detecting edges in multidimensional arrays of data is to fit a hypersurface to a neighbourhood of each array data point and take the magnitude of the gradient of the hypersurface as an estimate of the rate of change of data value in the array at that point. This corresponds to a multi-dimensional generalisation of using Prewitt operator  for edge detection in two dimensional images.

Multi-dimensional Prewitt operator determines the hyperplane that best fits the estimated function $$\textstyle \hat p(P_r)$$ at point $$\textstyle P_r$$. Such hyperplane can be defined by:

$$\Pi(x_1,x_2...x_n) \equiv a_0 + \sum_{n=1}^N a_i x_i$$.

It is then found by minimizing the squared error:

$$E_{err} = \int_{V_{\delta}(P_r)} (Pi(x_1,x_2...x_n) - \hat p(x_1,x_2...x_n))^2 dx_1 dx_2 ... dx_n$$

By differentiating least square error we are able to find $$\textstyle a_0, a_1 ... a_n$$ which correspond to coefficients of the hyperplane. The data points in the multi-dimensional array that have high gradient values are selected as possible boundary surface elements.

Search for boundary surface elements is performed by sampling a random element and if such element satisfies criteria for being classified as a boundary element, neighbours of such point are evaluated recursively. If there are no more acceptable elements in the neighbourhood of found elements, aggregation process is terminated.

Multidimensional extension to Sobel operator
Extending the Sobel operator  to multiple dimensions has been suggested as a way of detecting boundaries in multi-dimensional images. Sobel operator assigns a vector for each point in the image which points in the direction of the most rapid change. Magnitude of such vector is directly proportional to the magnitude of change. Hyperplane normal to this vector is what best describes the boundary between two segments in the local neighbourhood.

First order estimation of edge profiles
First order estimation of edge profiles method for detecting edges in multi-dimensional image relies on two principles that multi-dimensional edge follows. First is that changes in intensity of the image along the edge should be as sharp as possible, while changes between neighbouring points in the image should be as smooth as possible.

Edge detection in texturised data
In general, edge detection can be described as image or data segmentation into different regions, each of which is uniform in some property. Most of the methods used in edge detection rely on properties which are confined to a single point in data and do not need context of its neighbourhood to be fully described. Examples of such properties are grey level, hue and colour. Alternatively, texture of data can be used as a property by which uniformity of data is judged.

Approximation of derivatives
Majority of multi-dimensional edge detection operators rely on calculating derivatives for each data point. This becomes problematic when dealing with discrete data of high dimensionality. Derivatives are typically calculated by looking at differences between neighbouring data points. Such derivative estimation is highly inaccurate, and becomes even more so once we deal with lower resolution, higher dimensionality data. Use of low pass prefilters together derivative filters was proposed to increase accuracy of such approximations.