Many papers refer to edges but I don`t now any references where edges are defined clearly and carefully. (For example one could differentiate between a depth edge, a material edge and a texture gradient.)
Okay, so here are the edge current definitions:
- "the gradient in one direction is high, while the gradient in the direction orthogonal to it is low"
- "an edge can be defined as a set of contiguous pixel positions where an abrupt change of intensity (gray or color) values occur"
- "a pixel as edge if gradient is above a suitable threshold and some others within its selected surrounding area are similar as well"
- "Edges are significant local changes of intensity in an image"
All of them are based on image gradients and not on semantics.
In my humble opinion, these definitions are useless when it comes to applications, due to the following reasons.
1) An image of a white sheet of paper held before a white wall will contain an edge which is invisible to us. This is simply due to the projective nature of any imaging system, so given a regular RGB camera, the problem can never be solved. We cannot even find out whether we are missing such edges - humans can't do this either with their own visual system.
2) In case I now print a nice random texture on the paper, there are now gradients of many different orientations and magnitudes (by the way, computing a gradient on an image is a non-trivial task in itself). I personally would not consider these gradients (whatever size they have) as edges because I know they are on the surface of the actual object and contain no depth-discontinouties at all.
3) In case I scribble a text onto the sheet of paper, I will find nice and clear gradients which could be interpreted as edges. These edges however are not 3D-depth edges, they are just color edges. At this point it becomes difficult to decide what an edge is, because it very much depends on our application: in case we want to find physical 3D objects we will fail anyway, because we cannot deduce any depth from the described image. In case we consider an "object" to be an individual letter or word, edge detection will be an easy task.
4) Now consider material edges which contain no depth edges, curved physical objects which contain no abrupt depth changes, scenes containing depth but which are imaged from so far away that everything looks like a texture, scenes with content that violates the sampling theorem, etc.
I hope these example illustrate that the definition of the term "edge" in image processing, is task/application dependent. "Edge" in general implies a _semantic_ meaning and cannot be defined in terms of image properties.
On the other hand I can accept that due to these reasons, we might want to find a coarser definition of an "image edge" which is defined based on the image gradient.
Yet, if we do this, Zen seem to be the only feasible approach :)
Everything is an edge - nothing is an edge. It all depends on your current state of mind:
- An image without edges would have a constant color (and is therefore useless).
- An image with a single edge could consist of a single gradient with any slope.
- An image with as many edges as there are pixels is an image of white noise...
The main point why I asked the question to start with is because I think that we need to take more care about such definitions. Without such definitions we cannot define success of our research.
Every algorithm has its own niche and shortcoming. It means you may need to create your own algorithm. It is expected to detect an edge or different object or background or surface if there is significant/sudden change value CONSISTENTLY. It may be easier if it grey scale or 1, 0.
I have often been pointed to the Canny Edge Detector in the past, but there is no clear taxonomy on what an edge is - as far as I know. I like the Zen-answer, but for engineering it doesn't help so much :)
The reason I ask is that most image processing algorithms such as motion estimation, stereo, segmentation and denoising could all be solved if this question were answered in a way that requirements engineering actually helps to decide which type/definition of edge is being sought. Simply defining a thresholded gradient on a given scale (discretization grid) will most probably never serve any purpose except publishing yet another paper.
The characteristic of an edge is that the gradient in one direction is high, while the gradient in the direction orthogonal to it is low. The argumentation of canny edge detector is tricky, imagine for instance a picture of a highway crossing with roads crossing above others. meaning of edges may differ.
In Image Processing, an edge can be defined as a set of contiguous pixel positions where an abrupt change of intensity (gray or color) values occur. Edges represent boundaries between objects and background. Sometimes, the edge-pixel-sequence may be broken due to insufficient intensity difference.
The idea of an edge is rather conceptual, finding an unique edge pattern, by using different algorithms and thresholds, is almost impossible.
I would consider a pixel as edge if gradient is above a suitable threshold and some others within its selected surrounding area are similar as well.
Edges are significant local changes of intensity in an image and it typically occurs on the boundary between two different region in an mage. There are four steps of edge detection which are smoothing, enhancement, detection, and localization. In general, iris localization depending up on detecting edges using some edge detectors followed by boundary detection algorithms. An edge operator is a neighborhood operation which determines the extent to which each pixel's neighborhood can be partitioned by a simple arc passing through the pixel. Pixels in the neighborhood on one side of the arc have one predominant value and pixels in the neighborhood on the other side of the arc have a different predominant value.
IMHO, a proper definition should be based on the graph representation. Where nodes are associated with pixels on the image grid and the “edges” are associated with graph cut (interruption of the image graph edges). This definition is widely used in segmentation. The drawback is that the IP folks accustomed to use “pixel” as a base unit for image description and do not like extending the image structure.
In image processing, an edge is the boundary between different image segments.
Algorithms to detect edges look for high intensity changes across a direction, hoping to detect the complete edge (not just segments of it) and to discard intensity changes due to patterns within a given image segment.
Okay, so here are the edge current definitions:
- "the gradient in one direction is high, while the gradient in the direction orthogonal to it is low"
- "an edge can be defined as a set of contiguous pixel positions where an abrupt change of intensity (gray or color) values occur"
- "a pixel as edge if gradient is above a suitable threshold and some others within its selected surrounding area are similar as well"
- "Edges are significant local changes of intensity in an image"
All of them are based on image gradients and not on semantics.
In my humble opinion, these definitions are useless when it comes to applications, due to the following reasons.
1) An image of a white sheet of paper held before a white wall will contain an edge which is invisible to us. This is simply due to the projective nature of any imaging system, so given a regular RGB camera, the problem can never be solved. We cannot even find out whether we are missing such edges - humans can't do this either with their own visual system.
2) In case I now print a nice random texture on the paper, there are now gradients of many different orientations and magnitudes (by the way, computing a gradient on an image is a non-trivial task in itself). I personally would not consider these gradients (whatever size they have) as edges because I know they are on the surface of the actual object and contain no depth-discontinouties at all.
3) In case I scribble a text onto the sheet of paper, I will find nice and clear gradients which could be interpreted as edges. These edges however are not 3D-depth edges, they are just color edges. At this point it becomes difficult to decide what an edge is, because it very much depends on our application: in case we want to find physical 3D objects we will fail anyway, because we cannot deduce any depth from the described image. In case we consider an "object" to be an individual letter or word, edge detection will be an easy task.
4) Now consider material edges which contain no depth edges, curved physical objects which contain no abrupt depth changes, scenes containing depth but which are imaged from so far away that everything looks like a texture, scenes with content that violates the sampling theorem, etc.
I hope these example illustrate that the definition of the term "edge" in image processing, is task/application dependent. "Edge" in general implies a _semantic_ meaning and cannot be defined in terms of image properties.
On the other hand I can accept that due to these reasons, we might want to find a coarser definition of an "image edge" which is defined based on the image gradient.
Yet, if we do this, Zen seem to be the only feasible approach :)
Everything is an edge - nothing is an edge. It all depends on your current state of mind:
- An image without edges would have a constant color (and is therefore useless).
- An image with a single edge could consist of a single gradient with any slope.
- An image with as many edges as there are pixels is an image of white noise...
The main point why I asked the question to start with is because I think that we need to take more care about such definitions. Without such definitions we cannot define success of our research.
I think you mix up edges with object boundaries. Object boundaries are, in my humble opinion the sematic stuff you really give thought to.
I like the answer by Aristodemos, which relates edges and segments. Being segmentation the process whereby an image is partitioned in contiguous perceptual homogeneous areas, I would say an edge is a set of pixels placed in the transition of two homogeneous areas. Homogeneity can be defined as in the case of segmentation by different perceptual criteria: grayvalue, color, texture, even objects.
"I think you mix up edges with object boundaries." - It is. Even more, this is known problem that has to be researched more carefully in stereo and OF. Because many S&OF estimation algorithms use image gradients as a cue for a possible depth gradient. Now I work on it, and it seems to find a solution how to detect real depth gradient.
PS Simplest example of the considered one image edge confusion is an image that includes another printed image. Human being recognizes depth edges, which are indeed not.
To Joachim Pimiskern. You are not right. I can propose algorithm that will do detect this curve gradient.
Good question, but no exact answer. Because, when some one talk about edge, it means some time border of an area, or local gradient, or boundary of an object ..
I tend to believe that the concept of edges in images is not (yet) universal, as in many fields, images are acquired for understanding of certain properties pertaining to some "objects of interests". Those objects of interest might be meaningful to the specialists only (or mostly). What we call edges or textures are fuzzy concepts that depend a lot on the scales of observation. Hence the importance of multiscale methods. So you can find explicit edge models, as in
Edge enhancement by local deconvolution, Pattern Recognition, Volume 38, Issue 5, May 2005, Pages 661-672, O. Laligant, F. Truchetet, A. Dupasquier)
or implicit edge models through edge-detecting techniques (Canny-Deriche fliters), but ultimately, i believe that proper and practical definitons of edges, textures or corners are indeed, and will remain for a while, part of the work of image processing people.
I once heard Stéphane Mallat say that edges and textutes were ill-defined concepts, and to the surprise of the audience, add that edges were probably even more difficult to address than textures. If we had such a defintion, the problem would have been solved, and edge detection would not be a tpic in image processing anymore.
Inriching book: Vision: A Computational Investigation into the Human Representation and Processing of Visual Information, David Marr, 1982
Perhaps it can not be considered an answer to the question, but I have recently read a paper related to line detection that constructively defines what the "line" is for the algorithm.
I think it can be related to edges and somewhat uses a local consistence.
The paper is: LSD: A line Segment Detector by R. Grompone v. Gioi et al.
In the simplest form edge in an image is the sudden change in intensity value , at least for few pixel length
To Joachim: I think that you are wrong about the second image as well. The user just has to know how to extract the curve (have the model). By selecting only the endpoints of all segments simple RANSAC will give you an excellent straight line regarding other points as outliers.
As a simple answer, an edge in an image is exactly found in the place where a change of intensity occurs. The problem with this general definition is that encloses all kind of variations, including isolated points or a line composed by several pixels. In each case, it does not matter how strong the change is. Now, the importance that you give to specific edges depends strictly on the applications. As an example, in tasks of medical imaging processing, the principal effort is always made on detecting edges that describe a specific type of structure, which normally define the boundary of an organ. Any algorithm that is developed must be able to discriminate the unuseful edges (including noise) by using some criterias depending on the type of image. In this sense, one thing is the general definition of edge in an image, and other is the significance that each edge assumes in your task or application.
If you are looking for a practical rather than a philosophical answer, I can do no better than to recommend that you look closely at the Canny edge detector. Very hard to beat as a practical means of picking out real perceptual edges whilst rejecting pseudo or weak edges. Of course, by definition these are fuzzy concepts but Canny thought this problem through very carefully and I am not aware of a better all round method. Hope that is of some help.
Dr.S.Naga Nandini Sujatha, K.L.N.College of Engg.
An edge is defined roughly as where there is an intensity variation then there is an edge occurs. But the difference value of each pixel intensity with its neighboring pixel is not specified with ant threshold then it is difficult to find a edge in poor intensity image. If the pixels are defined with gradient vector value ( Magnitude and Direction Value) where there is a force contradiction then there is an is present.
edges are high frequency components of an image. You can get them by using wavelet transform as well as many other edge detection algorithms.
Edges are high frequency components, which is basically the change in intensity. Flat images (Having less variation) yield no edge details. In other words image passes through high pass filter provide edge details. In few research papers it also related to texture details.
Topic starter is an expert in stereo. I think he wants to find a kind of correlation between image gradients and object edges.
Edges are defined mathematically and rigidly when we come to generalize it to an object which shall belong to some specific space with some dimensions, say, an edge defined in a 2-dim space is like an edge in an image. But an edge of an object in a 3-dim space shall be a real edge which shall use at least two images to locate it. Thus an edge is defined according to the space it is located in, though the gradient is always there. To recognize a real edge you must be cautious not only about the threshold chosen but also about the objects surrounding it, such as the background and the foreground of an image. Just a remark from a mathematician who is not so professional on image analysis. Richard Hsu
As nearly everyone commented, in image processing an edge can be continuously modeled with the extremum of the first derivative in one or more arbitrarily given directions. However, in practice the presence of noise will render such results useless. Hildreth and Marr suggested a more useful approach with the additional application of a Gaussian convolution operator, which due to its linearity can be combined with the derivative, or Laplacian operator. With the Laplacian being a second derivative, an application would need "only" to detect the zero crossings. The implication of the smoothing can effectively reduce extremas due to noise while keeping true edges in its exact place. These methods are known as "Laplace of Gauss" (LoG) or in its simpler approximation "Difference of Gaussians" (DoG). Around the same time, Canny introduced a similar concept using a polynomial approach instead of a Gaussian.
Now, aside from this signal theoretical aspect one can alternatively use a completely different approach to define an edge. One example would be with the help of mathematical morphology, but there are many more possible models that fit a similar definition.
The definition, or model of the edge is one thing. A different problem is to actually detect or segment this edge. Problems of this nature are generally not analytically solveable as the solution does not continuously depend on the data. Such problems are also known as ill-posed problems. However, if problem related additional (a-priori) information can be incorporated into the model, a useful approximation may be achieved for the given practical problem.
Lutz Schaefer
Because the request is “definition of an edge in image processing” we must (can) discuss about it related to “image processing”!
In my humble opinion, the definition of the term "edge" in image processing is task/application dependent.
The problem is to actually detect or segment this edge. In segmentation process there are many important things to taken into account. One of them is the complexity of segmentation process. Another is to compare their methods with other segmentation methods and will find the accuracy of the method chosen.
For example it is very hard to compare manual method of segmentation with own method. For comparison it is important to take care how many pixels will be considered for “edge” (see Bogdan Popescu, Andreea Iancu, Dumitru Dan Burdescu, Marius Brezovan, Eugen Ganea: Evaluation of Image Segmentation Algorithms from the Perspective of Salient Region Detection, ACIVS 2011 and Dumitru Dan Burdescu, Marius Brezovan, Eugen Ganea, Liana Stanescu: New Algorithm for Segmentation of Images Represented as Hypergraph Hexagonal-Grid. IbPRIA 2011).
So I think that we need to take more care about such definitions.
While defining edge one has to be crystal clear about the concept of both noise and edge . As they both concepts sound very much similiar
Given that others have answered about luminance edges in an image, I will not say much about that.
Philosophically -- when taken outside the strict context of image processing -- one could say "there are no edges". Or rather -- more honestly -- edges are an emergent phenomenon. As the comments in the original question about projected texture, for example, suggests there are texture edges, depth edges, material edges, illusory edges (as in Kanizsa's illusory triangle), motion edges, even semantic or category edges, etc. Each of these types of edges describe the interface of two different materials, properties, or regions of similarity. If one defines the materials, dimensions, or properties that are being worked with (such as depth, 2D luminance, 3D density, color, semantics), then the mathematical definitions given in the other posts (e.g., discontinuity of the first derivative of whatever function you are working with, etc.) can be used to find the end of one entity (or region of similarity) and the beginning of the next -- the "edge".
To Joachim Pimiskern: The edge in your second image is referred to as an illusory edge or subjective contour, and has been studied very extensive by perceptual psychologists for nearly 100 years now. The conditions under which such edges occur, which physical dimensions can give rise to them, ways to predict and measure the subjective "strength" or clarity of the edges are all well known. The physiological mechanisms that underlie human perception of such edges are also well studied (it seems that very early in the visual system -- V2 -- these edges are treated the same as luminance edges; see for example Peterhans and von der Heydt R., 1989, Mechanisms of contour perception in monkey visual cortex. II. Contours bridging gaps. J. Neurosci. 9:1749–1763.). For a more philosophical treatment of the class of "edges" in general, the gestalt psychologists (especially Kohler) are a great place place to start (they offer, for example, many great insights -- including mathematical ones! --- into why "edges" would be seen in your your first image -- with the sigmoid.)
To Richard Hsu: “The definition, or model of the edge is one thing. A different problem is to actually detect or segment this edge. Problems of this nature are generally not analytically solveable as the solution does not continuously depend on the data. Such problems are also known as ill-posed problems. However, if problem related additional (a-priori) information can be incorporated into the model, a useful approximation may be achieved for the given practical problem.”
IMHO ”ill-posed problem” is a kind of fundamental assumption from the past that actually can be solved by probabilistic approaches. in 80-90th Stereo OF also were classified as ”ill-posed problems”, however now we have got a panel of algorithms, which provide more or less robust estimation. As for segmentation and edge detection, these problems recently have been properly addressed. See for example http://www.eecs.berkeley.edu/Research/Projects/CS/vision/bsds/
To Richard Hsu: “The definition, or model of the edge is one thing. A different problem is to actually detect or segment this edge. Problems of this nature are generally not analytically solveable as the solution does not continuously depend on the data. Such problems are also known as ill-posed problems. However, if problem related additional (a-priori) information can be incorporated into the model, a useful approximation may be achieved for the given practical problem.”
IMHO ”ill-posed problem” is a kind of fundamental assumption from the past that actually can be solved by probabilistic approaches. in 80-90th Stereo OF also were classified as ”ill-posed problems”, however now we have got a panel of algorithms, which provide more or less robust estimation. As for segmentation and edge detection, these problems recently have been properly addressed. See for example http://www.eecs.berkeley.edu/Research/Projects/CS/vision/bsds/
To Mikhail Mozerov: To clarify, an ill-posed problem has a very formal and rigorous mathematical definition. It is neither an assumption nor can it ever become outdated! As I said in my former comment, if you can incorporate useful priors (a-priori assumptions or constraints that are likely adhoc in nature) into the model you may be able to solve the modified problem. However generally, with image segmentation problems you will never be able to achieve a deterministic segmentation solution, no matter how sophisticated the problem is approached. Again, this is not to be confused if you are solving an initially unrelated well-posed problem followed by segmentation.