图像边缘是什么-从数学的角度出发

图像处理的项目中,要经常用到图像边缘的概念,如图像边缘检测,边缘检测是进行进一步识别的重要步骤。

本文是前段时间我去stackoverflow问老外图像边缘与导数的关系时,一个热心人给我的回答。

最近比较忙,没时间把它翻译出来,先把原文放了出来,以供欣赏。

Paul R has given you an answer, so I'll just add some images to help make the point.

In image processing, when we refer to a "gradient" we usually mean the change in brightness over a series of pixels. You can create gradient images using software such as GIMP or Photoshop.

Here's an example of a linear gradient from black (left) to white (right):

图像边缘是什么-从数学的角度出发_第1张图片

The gradient is "linear" meaning that the change in intensity is directly proportional to the distance between pixels. This particular gradient is smooth, and we wouldn't say there is an "edge" in this image.

If we plot the brightness of the gradient vs. X-position (left to right), we get a plot that looks like this:

图像边缘是什么-从数学的角度出发_第2张图片

Here's an example of an object on a background. The edges are a bit fuzzy, but this is common in images of real objects. The pixel brightness does not change from black to white from one pixel to the next: there is a gradient that includes shades of gray. This is not obvious since you typically have to zoom into a photo to see the fuzzy edge.

图像边缘是什么-从数学的角度出发_第3张图片

In image processing we can find those edges by looking at sharp transitions (sharp gradients) from one brightness to another. If we zoom into the upper left corner of that box, we can see that there is a transition from white to black over just a few pixels. This transition is a gradient, too. The difference is that the gradient is located between two regions of constant color: white on the left, black on the right.

图像边缘是什么-从数学的角度出发_第4张图片

The red arrow shows the direction of the gradient from background to foreground: pixels are light on the left, and as we move in the +x direction the pixels become darker. If we plot the brightness sampled along the arrow, we'll get something like the following plot, with red squares representing the brightness for a specific pixel. The change isn't linear, but instead will look like one side of a bell curve:

图像边缘是什么-从数学的角度出发_第5张图片

The blue line segment is a rough approximation of the slope of the curve at its steepest. The "true" edge point is the point at which slope is steepest along the gradient corresponding to the edge of an object.

Gradient magnitude and direction can be calculated using horizontal and vertical Sobel filters. You can then calculate the direction of the gradient as:

gradientAngle = arctan(gradientY / gradientX)

The gradient will be steepest when it is perpendicular to the edge of the object.

If you look at some black and white images of real scenes, you can zoom in, look at individual pixel values, and develop a good sense of how these principles apply.

你可能感兴趣的:(数学)