{"id":1976,"date":"2014-02-05T17:32:43","date_gmt":"2014-02-05T17:32:43","guid":{"rendered":"https:\/\/www.anagram.at\/en\/diplomarbeit\/edge-detection\/"},"modified":"2014-02-05T17:32:43","modified_gmt":"2014-02-05T17:32:43","slug":"edge-detection","status":"publish","type":"page","link":"https:\/\/www.anagram.at\/en\/diplomarbeit\/edge-detection\/","title":{"rendered":"Edge detection"},"content":{"rendered":"<p><body><br \/>\n<!--Navigation Panel--><br \/>\n<b> Next:<\/b> <a name=\"tex2html505\" href=\"https:\/\/www.anagram.at\/diplomarbeit\/line-extraction\/\">Line Extraction<\/a><br \/>\n<b> Up:<\/b> <a name=\"tex2html501\" href=\"https:\/\/www.anagram.at\/diplomarbeit\/methods\/\">Methods<\/a><br \/>\n<b> Previous:<\/b> <a name=\"tex2html495\" href=\"https:\/\/www.anagram.at\/diplomarbeit\/calibration\/\">Calibration<\/a><br \/>\n<!--End of Navigation Panel--><\/p>\n<h1><a name=\"SECTION00430000000000000000\"><br \/>\nEdge detection<\/a><br \/>\n<\/h1>\n<p>\nThe next step is to transform the images into a representation in which only edge segments remain. Edges are declared as significant changes in the signal level, thus can be searched with the help of convolution masks which approximate the first or second derivation of the image. If the mask measures the first derivation of the image in <img loading=\"lazy\" width=\"15\" height=\"19\" align=\"BOTTOM\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img25.png\" alt=\"$ x$\"\/> and <img loading=\"lazy\" width=\"14\" height=\"33\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img26.png\" alt=\"$ y$\"\/> direction, denoted as <img loading=\"lazy\" width=\"71\" height=\"37\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img192.png\" alt=\"$ G_x(x,y)$\"\/> and <img loading=\"lazy\" width=\"71\" height=\"37\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img193.png\" alt=\"$ G_y(x,y)$\"\/>, an edge point is found if the magnitude <!-- MATH\n $m = sqrt{G_x(x,y)^2 + G_y(x,y)^2}$\n --><br \/>\n<img loading=\"lazy\" width=\"236\" height=\"44\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img194.png\" alt=\"$ m = sqrt{G_x(x,y)^2 + G_y(x,y)^2}$\"\/> of the convolution at the measured point is above a threshold <img loading=\"lazy\" width=\"15\" height=\"19\" align=\"BOTTOM\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img195.png\" alt=\"$ tau$\"\/>. Also the direction <!-- MATH\n $varrho = arctan(frac{G_y(x,y)}{G_x(x,y)})$\n --><br \/>\n<img loading=\"lazy\" width=\"157\" height=\"48\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img196.png\" alt=\"$ varrho = arctan(frac{G_y(x,y)}{G_x(x,y)})$\"\/> of the edge can be computed. A zero-crossing represents an edge in a mask which calculates the second derivation. The direction of the edge is stored in the values on the right and left side of the zero-crossing. Some popular convolution masks are:\n<\/p>\n<dl>\n<dt><strong>Sobel<\/strong><\/dt>\n<dd>The Sobel operator approximates the first derivation of the image. The operator mask of the Sobel operator is defined as<\/p>\n<p\/>\n<div align=\"CENTER\"><a name=\"sobeloperator\"\/><!-- MATH\n begin{equation}\nS_x =\n        begin{pmatrix}\n        -1 & 0 & 1 cr -2 & 0 & 2 cr -1 & 0  & 1\n        end{pmatrix}\n        qquad\n        S_y =\n        begin{pmatrix}\n        1 & 2 & 1 cr 0 & 0 & 0 cr -1 & -2 & -1\n        end{pmatrix}\nend{equation}\n --><\/p>\n<table cellpadding=\"0\" width=\"100%\" align=\"CENTER\">\n<tr valign=\"MIDDLE\">\n<td nowrap=\"nowrap\" align=\"CENTER\"><img loading=\"lazy\" width=\"381\" height=\"115\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img197.png\" alt=\"$displaystyle S_x = begin{pmatrix}-1 &amp; 0 &amp; 1 cr -2 &amp; 0 &amp; 2 cr -1 &amp; 0 &amp; 1 en...&#10;...uad S_y = begin{pmatrix}1 &amp; 2 &amp; 1 cr 0 &amp; 0 &amp; 0 cr -1 &amp; -2 &amp; -1 end{pmatrix}$\"\/><\/td>\n<td nowrap=\"nowrap\" width=\"10\" align=\"RIGHT\">\n(3.6)<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><br clear=\"ALL\"\/><\/p>\n<p\/>\n<\/dd>\n<dt><strong>Prewitt<\/strong><\/dt>\n<dd>The Prewitt is similar to the Sobel operator, its operation mask is defined as<\/p>\n<p\/>\n<div align=\"CENTER\"><!-- MATH\n begin{equation}\nP_x =\n        begin{pmatrix}\n        -1 & 0 & 1 cr -1 & 0 & 1cr -1 & 0 & 1\n        end{pmatrix}\n        qquad\n        P_y =\n        begin{pmatrix}\n        1 & 1 & 1 cr 0 & 0 & 0 cr -1 & -1 & -1\n        end{pmatrix}\nend{equation}\n --><\/p>\n<table cellpadding=\"0\" width=\"100%\" align=\"CENTER\">\n<tr valign=\"MIDDLE\">\n<td nowrap=\"nowrap\" align=\"CENTER\"><img loading=\"lazy\" width=\"382\" height=\"115\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img198.png\" alt=\"$displaystyle P_x = begin{pmatrix}-1 &amp; 0 &amp; 1 cr -1 &amp; 0 &amp; 1cr -1 &amp; 0 &amp; 1 end...&#10;...uad P_y = begin{pmatrix}1 &amp; 1 &amp; 1 cr 0 &amp; 0 &amp; 0 cr -1 &amp; -1 &amp; -1 end{pmatrix}$\"\/><\/td>\n<td nowrap=\"nowrap\" width=\"10\" align=\"RIGHT\">\n(3.7)<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><br clear=\"ALL\"\/><\/p>\n<p\/>\n<\/dd>\n<dt><strong>Zero Crossing<\/strong><\/dt>\n<dd>The core of the zero crossing operator is the LoG Filter (Laplacian of Gaussian). It is defined as<\/p>\n<p\/>\n<div align=\"CENTER\"><!-- MATH\n begin{equation}\nLog(x,y) = frac{-1}{pisigma^4}[1-frac{x^2+y^2}{2sigma^2}]e^-frac{x^2+y^2}{2sigma^2}\nend{equation}\n --><\/p>\n<table cellpadding=\"0\" width=\"100%\" align=\"CENTER\">\n<tr valign=\"MIDDLE\">\n<td nowrap=\"nowrap\" align=\"CENTER\"><img loading=\"lazy\" width=\"326\" height=\"65\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img199.png\" alt=\"$displaystyle Log(x,y) = frac{-1}{pisigma^4}[1-frac{x^2+y^2}{2sigma^2}]e^-frac{x^2+y^2}{2sigma^2}$\"\/><\/td>\n<td nowrap=\"nowrap\" width=\"10\" align=\"RIGHT\">\n(3.8)<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><br clear=\"ALL\"\/><\/p>\n<p\/>\nand is shown in Figure <a href=\"#LOG\">3.6<\/a><\/p>\n<div align=\"CENTER\"><a name=\"LOG\"\/><a name=\"1598\"\/><\/p>\n<table>\n<caption align=\"BOTTOM\"><strong>Figure 3.6:<\/strong><br \/>\nLoG Filter<\/caption>\n<tr>\n<td>\n<div align=\"CENTER\">\n <img loading=\"lazy\" width=\"356\" height=\"304\" align=\"BOTTOM\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/Log.jpg\" alt=\"Image Log\"\/><\/div>\n<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>The LoG operator calculates the second derivation of an image, as a result in an area with no change in intensity values the response of the LoG operator will be zero. However, if there is a change in intensity the response will be positive on the darker side, zero in between (on the edge itself) and negative on the lighter side. Thus the direction of the edge is encoded in the resulting grayscale map after convolving with the LoG operator. The LoG operator is <i>isotropic<\/i>, so the quality does not depend on the attitude of the edge in relation to the image.\n<\/dd>\n<dt><strong>Canny<\/strong><\/dt>\n<dd>The Canny edge detector can be roughly divided into six steps:<\/p>\n<dl>\n<dt><strong>Step 1<\/strong><\/dt>\n<dd>During the first stage of the Canny algorithm, noise has to be filtered out. This is done by convolving the image with a Gaussian filter mask. The size of the mask is proportional to the sensitivity and indirectly proportional to the localization<br \/>\nachieved by the detector.\n<\/dd>\n<dt><strong>Step 2<\/strong><\/dt>\n<dd>The strength of the edges is found by convolving the images with the Sobel operator (defined in Equation <a href=\"#sobeloperator\">3.6<\/a>.), which performs a 2-D spatial gradient measurement on the image. The magnitude of the gradient can be found using the equation<\/p>\n<p\/>\n<div align=\"CENTER\"><a name=\"sob_mag\"\/><!-- MATH\n begin{equation}\nM = sqrt{G_x^2 + G_y^2 }\nend{equation}\n --><\/p>\n<table cellpadding=\"0\" width=\"100%\" align=\"CENTER\">\n<tr valign=\"MIDDLE\">\n<td nowrap=\"nowrap\" align=\"CENTER\"><img loading=\"lazy\" width=\"138\" height=\"56\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img200.png\" alt=\"$displaystyle M = sqrt{G_x^2 + G_y^2 }$\"\/><\/td>\n<td nowrap=\"nowrap\" width=\"10\" align=\"RIGHT\">\n(3.9)<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><br clear=\"ALL\"\/><\/p>\n<p\/>\nA faster computation of the magnitude is given by<\/p>\n<p\/>\n<div align=\"CENTER\"><a name=\"sob_mag_fast\"\/><!-- MATH\n begin{equation}\narrowvert M arrowvert = arrowvert G_x arrowvert + arrowvert G_y arrowvert\nend{equation}\n --><\/p>\n<table cellpadding=\"0\" width=\"100%\" align=\"CENTER\">\n<tr valign=\"MIDDLE\">\n<td nowrap=\"nowrap\" align=\"CENTER\"><img loading=\"lazy\" width=\"151\" height=\"37\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img201.png\" alt=\"$displaystyle arrowvert M arrowvert = arrowvert G_x arrowvert + arrowvert G_y arrowvert$\"\/><\/td>\n<td nowrap=\"nowrap\" width=\"10\" align=\"RIGHT\">\n(3.10)<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><br clear=\"ALL\"\/><\/p>\n<p\/>\nwhere <img loading=\"lazy\" width=\"28\" height=\"35\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img202.png\" alt=\"$ G_x$\"\/> and <img loading=\"lazy\" width=\"27\" height=\"35\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img203.png\" alt=\"$ G_y$\"\/> are the first derivations of the image in x and y direction. <img loading=\"lazy\" width=\"28\" height=\"35\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img202.png\" alt=\"$ G_x$\"\/> is proportional to variations in the horizontal direction and <img loading=\"lazy\" width=\"27\" height=\"35\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img203.png\" alt=\"$ G_y$\"\/> to variations in the vertical direction. If both derivates are combined, as it is in Equation <a href=\"#sob_mag_fast\">3.10<\/a> all directions are taken into consideration.\n<\/dd>\n<dt><strong>Step3<\/strong><\/dt>\n<dd>The direction of the edge can be computed as <\/p>\n<p\/>\n<div align=\"CENTER\"><a name=\"direction\"\/><!-- MATH\n begin{equation}\ntheta =\nbegin{cases}\narctan(frac{G_y}{G_x}) & text{if $G_x ne 0 $}\n0^{circ}  & text{if $G_y = 0$  & $G_x =0 $} \n90^{circ} & text{if $G_y ne 0$  & $G_x = 0$}\nend{cases}\nend{equation}\n --><\/p>\n<table cellpadding=\"0\" width=\"100%\" align=\"CENTER\">\n<tr valign=\"MIDDLE\">\n<td nowrap=\"nowrap\" align=\"CENTER\"><img loading=\"lazy\" width=\"324\" height=\"136\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img204.png\" alt=\"$displaystyle theta = begin{cases}arctan(frac{G_y}{G_x}) &amp; text{if $G_x n...&#10;... &amp; $G_x =0 $}  90^{circ} &amp; text{if $G_y ne 0$ &amp; $G_x = 0$} end{cases}$\"\/><\/td>\n<td nowrap=\"nowrap\" width=\"10\" align=\"RIGHT\">\n(3.11)<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><br clear=\"ALL\"\/><\/p>\n<p\/>\n<\/dd>\n<dt><strong>Step 4<\/strong><\/dt>\n<dd>The direction has to be classified into five sectors. This process is similar to dividing a semicircle into five regions. Lets say the result of Equation <a href=\"#direction\">3.11<\/a> is <img loading=\"lazy\" width=\"14\" height=\"20\" align=\"BOTTOM\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img183.png\" alt=\"$ theta$\"\/> and the new direction will be <img loading=\"lazy\" width=\"18\" height=\"17\" align=\"BOTTOM\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img205.png\" alt=\"$ theta'$\"\/> , then <img loading=\"lazy\" width=\"18\" height=\"17\" align=\"BOTTOM\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img205.png\" alt=\"$ theta'$\"\/> can be computed as:<\/p>\n<p\/>\n<div align=\"CENTER\"><!-- MATH\n begin{equation}\ntheta' =\nbegin{cases}\n0^{circ}  & text{if $thetageq 0$  & $thetaleq 22.5$  &  $thetageq 157.5$  & $thetaleq 180$} \n45^{circ} & text{if $theta > 22.5$  & $thetaleq 67.5$} \n90^{circ} & text{if $theta > 67.5$  & $thetaleq 112.5$} \n135^{circ} & text{if $theta > 112.5$  & $theta < 157.5$}\nend{cases}\nend{equation}\n --><\/p>\n<table cellpadding=\"0\" width=\"100%\" align=\"CENTER\">\n<tr valign=\"MIDDLE\">\n<td nowrap=\"nowrap\" align=\"CENTER\"><img loading=\"lazy\" width=\"467\" height=\"173\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img206.png\" alt=\"$displaystyle theta' = begin{cases}0^{circ} &amp; text{if $thetageq 0$ &amp; $...&#10;...$}  135^{circ} &amp; text{if $theta &gt; 112.5$ &amp; $theta &lt; 157.5$} end{cases}$\"\/><\/td>\n<td nowrap=\"nowrap\" width=\"10\" align=\"RIGHT\">\n(3.12)<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><br clear=\"ALL\"\/><\/p>\n<p\/>\nAccording to [<a href=\"node47.html#BaeBe93\">HB93<\/a>], it could be better to calculate the discrete tangent directly, without the indirection of first computing the <img loading=\"lazy\" width=\"57\" height=\"19\" align=\"BOTTOM\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img207.png\" alt=\"$ arctan$\"\/> and then classifying into five regions.\n<\/dd>\n<dt><strong>Step 5<\/strong><\/dt>\n<dd>After the edge directions are known, nonmaximum suppression is applied which traces along the edges and deletes every edge point (set it to 0) which is not considered to be an edge.\n<\/dd>\n<dt><strong>Step 6<\/strong><\/dt>\n<dd>Finally, hysteresis is used to eliminate the breaking up of an edge due to variations of the operator. Therefore two thresholds are defined. <img loading=\"lazy\" width=\"26\" height=\"33\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img16.png\" alt=\"$ tau _H$\"\/> which is the higher threshold and <img loading=\"lazy\" width=\"23\" height=\"33\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img15.png\" alt=\"$ tau _L$\"\/> which is the lower threshold. If the magnitude of a point is higher or equal to <img loading=\"lazy\" width=\"26\" height=\"33\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img16.png\" alt=\"$ tau _H$\"\/>, it is immediately marked as an edge. Every pixel that is connected to such a pixel and has magnitude higher than <img loading=\"lazy\" width=\"23\" height=\"33\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img15.png\" alt=\"$ tau _L$\"\/> is also marked as an edge. If you think of following an edge, the search starts at a pixel with a magnitude higher than <img loading=\"lazy\" width=\"26\" height=\"33\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img16.png\" alt=\"$ tau _H$\"\/> and does not stop until a pixel with a magnitude lower than <img loading=\"lazy\" width=\"23\" height=\"33\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img15.png\" alt=\"$ tau _L$\"\/> is reached.\n<\/dd>\n<\/dl>\n<p>The output of the Canny edge operator is an edge image with a low error rate, good localization and only one response to a single edge. Figure <a href=\"#canny_img\">3.7<\/a> shows the results of the Canny edge detector with two different thresholds. With a low threshold many artifacts remain whereas with a high threshold important information could be lost. The choice which thresholds to use depends on the demands of the continuative process as well as the environment conditions (natural light, artificial light, contrast, <img loading=\"lazy\" width=\"30\" height=\"19\" align=\"BOTTOM\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img180.png\" alt=\"$ cdots$\"\/>).   <\/p>\n<div align=\"CENTER\"><a name=\"canny_img\"\/><a name=\"1642\"\/><\/p>\n<table>\n<caption align=\"BOTTOM\"><strong>Figure 3.7:<\/strong><br \/>\nResult of the Canny edge detector, images are taken from a stereo camera system. The images are not rectified. The first column shows the original images, the pictures in the middle are produced by the Canny operator with <img loading=\"lazy\" width=\"23\" height=\"33\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img15.png\" alt=\"$ tau _L$\"\/> = 3.2 and <img loading=\"lazy\" width=\"26\" height=\"33\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img16.png\" alt=\"$ tau _H$\"\/> = 8.0, the thresholds of the operator producing the pictures on the right side are <img loading=\"lazy\" width=\"23\" height=\"33\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img15.png\" alt=\"$ tau _L$\"\/> = 25.6 and <img loading=\"lazy\" width=\"26\" height=\"33\" align=\"MIDDLE\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/img16.png\" alt=\"$ tau _H$\"\/> = 51.2<\/caption>\n<tr>\n<td>\n<div align=\"CENTER\">\n <img loading=\"lazy\" width=\"1200\" height=\"650\" align=\"BOTTOM\" border=\"0\" src=\"https:\/\/www.anagram.at\/app\/uploads\/2014\/02\/canny.jpg\" alt=\"Image canny\"\/><\/div>\n<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<\/dd>\n<\/dl>\n<p>The decision which detector to use depends on the problem which is to solve. Every edge detector has its special advantages and disadvantages. In order to find straight lines, the Canny edge detector was appropriate.<\/p>\n<hr\/>\n<p><!--Navigation Panel--><b> Next:<\/b> <a name=\"tex2html505\" href=\"https:\/\/www.anagram.at\/diplomarbeit\/line-extraction\/\">Line Extraction<\/a><br \/>\n<b> Up:<\/b> <a name=\"tex2html501\" href=\"https:\/\/www.anagram.at\/diplomarbeit\/methods\/\">Methods<\/a><br \/>\n<!--End of Navigation Panel--><\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Edge detection<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1946,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":""},"categories":[],"featured_image_src":null,"featured_image_src_square":null,"_links":{"self":[{"href":"https:\/\/www.anagram.at\/en\/wp-json\/wp\/v2\/pages\/1976"}],"collection":[{"href":"https:\/\/www.anagram.at\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.anagram.at\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.anagram.at\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.anagram.at\/en\/wp-json\/wp\/v2\/comments?post=1976"}],"version-history":[{"count":0,"href":"https:\/\/www.anagram.at\/en\/wp-json\/wp\/v2\/pages\/1976\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.anagram.at\/en\/wp-json\/wp\/v2\/pages\/1946"}],"wp:attachment":[{"href":"https:\/\/www.anagram.at\/en\/wp-json\/wp\/v2\/media?parent=1976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.anagram.at\/en\/wp-json\/wp\/v2\/categories?post=1976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}