Compass Edge Detector

http://homepages.inf.ed.ac.uk/rbf/HIPR2/prewitt.htm

Compass Edge Detector


Common Names: Compass Edge Detector, Edge Template Matching

Brief Description

Compass Edge Detection is an alternative approach to the differential gradient edge detection (see the  Roberts Cross  and  Sobel  operators). The operation usually outputs two images, one estimating the local edge gradient magnitude and one estimating the edge orientation of the input image.

How It Works

When using compass edge detection the image is  convolved  with a set of (in general  8 ) convolution kernels, each of which is sensitive to edges in a different orientation. For each pixel the local edge gradient  magnitude  is estimated with the maximum response of all  8  kernels at this pixel location:
Eqn:eqnprew
where  Eqn:eqnprw2  is the response of the kernel  i  at the particular pixel position and  n  is the number of convolution kernels. The local edge  orientation  is estimated with the orientation of the kernel that yields the maximum response.

Various kernels can be used for this operation; for the following discussion we will use the Prewitt kernel. Two templates out of the set of 8 are shown in Figure 1:




Figure 1 Prewitt compass edge detecting templates sensitive to edges at   and  45°.

The whole set of 8 kernels is produced by taking one of the kernels and rotating its coefficients circularly. Each of the resulting kernels is sensitive to an edge orientation ranging from  to 315° in steps of 45°, where  corresponds to a vertical edge.

The maximum response |G| for each pixel is the value of the corresponding pixel in the output magnitude image. The values for the output orientation image lie between 1 and 8, depending on which of the 8 kernels produced the maximum response.

This edge detection method is also called edge template matching, because a set of edge templates is matched to the image, each representing an edge in a certain orientation. The edge magnitude and orientation of a pixel is then determined by the template that matches the local area of the pixel the best.

The compass edge detector is an appropriate way to estimate the magnitude and orientation of an edge. Although differential gradient edge detection needs a rather time-consuming calculation to estimate the orientation from the magnitudes in the x- and y-directions, the compass edge detection obtains the orientation directly from the kernel with the maximum response. The compass operator is limited to (here) 8 possible orientations; however experience shows that most direct orientation estimates are not much more accurate.
On the other hand, the compass operator needs (here) 8 convolutions for each pixel, whereas the gradient operator needs only 2, one kernel being sensitive to edges in the vertical direction and one to the horizontal direction.

The result for the edge magnitude image is very similar with both methods, provided the same convolving kernel is used.

Guidelines for Use

If we apply the Prewitt Compass Operator to

cln1

we get two output images. The image

cln1cmp1

shows the local edge magnitude for each pixel. We can't see much in this image, because the response of the Prewitt kernel is too small. Applying histogram equalization to this image yields

cln1cmp4

The result is similar to

cln1sob2

which was processed with the Sobel differential gradient edge detector and histogram equalized.

The edges in the image can be rather thick, depending on the size of the convolving kernel used. To remove this unwanted effect some further processing (e.g. thinning) might be necessary.

The image

cln1cmp2

is the graylevel orientation image that was contrast-stretched for a better display. That means that the image contains 8 graylevel values between 0 and 255, each of them corresponding to an edge orientation. The orientation image as a color labeled image (containing 8 colors, each corresponding to one edge orientation) is shown in

cln1cmp3

The orientation of strong edges is shown very clearly, as for example at the vertical stripes of the wall paper. On a uniform background without a noticeable image gradient, on the other hand, it is ambiguous which of the 8 kernels will yield the maximum response. Therefore a uniform area results in a random distribution of the 8 orientation values.

A simple example of the orientation image is obtained if we apply the Compass Operator to

wdg2

Each straight edge of the square yields a line of constant color (or graylevel). The circular hole in the middle, on the other hand, contains all 8 orientations and is therefore segmented in 8 parts, each of them having a different color. Again, the image is displayed as a normalized graylevel image

wdg2cmp2

and as a colored label image

wdg2cmp3

The image

stc1

is an image containing many edges with gradually changing orientation. Applying the Prewitt compass operator yields

stc1cmp1

for the edge magnitude and

stc1cmp2

for the edge orientation. Note that, due to the distortion of the image, all posts along the railing in the lower left corner have a slightly different orientation. However, the operator classifies them in only 3 different classes, since it assigns the same orientation label to edges when the orientation varies within 45°.

Another image suitable for edge detection is

bok1

The corresponding output of the compass edge detector is

bok1cmp1

and

bok1cmp2

for the magnitude and orientation, respectively. Like the previous image, this image contains little noise and most of the resulting edges correspond to boundaries of objects. Again, we can see that most of the roughly vertical books were assigned the same orientation label, although the orientation varies by some amount.

We demonstrate the influence of noise on the compass operator by adding Gaussian noise with a standard deviation of 15 to the above image. The image

bok1noi1

shows the noisy image. The Prewitt compass edge detector yields

bok1cmp3

for the edge magnitude and

bok1cmp4

for the edge orientation. Both images contain a large amount of noise and most areas in the orientation image consist of a random distribution of the 8 possible values.

Common Variants

As already mentioned earlier, there are various kernels that can be used for Compass Edge Detection. The most common ones are shown in Figure 2:




Figure 2 Some examples for the most common compass edge detecting kernels, each example showing two kernels out of the set of eight.

For every template, the set of all eight kernels is obtained by shifting the coefficients of the kernel circularly.

The result for using different templates is similar; the main difference is the different scale in the magnitude image. The advantage of Sobel and Robinson kernels is that only 4 out of the 8 magnitude values must be calculated. Since each pair of kernels rotated about 180° opposite is symmetric, each of the remaining four values can be generated by inverting the result of the opposite kernel.

Interactive Experimentation

You can interactively experiment with this operator by clicking here.

Exercises

  1. Compare the performance of the different kernels by applying them to
    stc1

  2. Compare the magnitude edge image of the book shelf with and without noise. Can you find a threshold that retains all important edges but removes the noise?

  3. Produce an image containing 8 edge orientations from
    wdg2

    (e.g. by rotating the image about 45° and blending it with the original). Then apply the compass edge operator to the resulting image and examine the edge orientation image. Do the same with an image containing 12 different edge orientations.

  4. Take the orientation image obtained in exercise 2 and mask out the pixels not corresponding to a strong edge using the thresholded edge magnitude image as a mask.

References

E. Davies Machine Vision: Theory, Algorithms and Practicalities, Academic Press, 1990, pp 101 - 110.

R. Gonzalez and R. Woods Digital Image Processing, Addison-Wesley Publishing Company, 1992, p 199.

D. Vernon Machine Vision, Prentice-Hall, 1991, Chap. 5.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值