diff --git a/Article/Expe_auto/perfTable.tex b/Article/Expe_auto/perfTable.tex index 09fcec2bc8dac5952ffdea21909998dfff6fc786..2e08d323f9f3c8f8952b46fc6490ac75ccf299f9 100644 --- a/Article/Expe_auto/perfTable.tex +++ b/Article/Expe_auto/perfTable.tex @@ -12,7 +12,8 @@ $M_{new}/M_{old}$ (\%) & & & & \\ \hspace{0.4cm} on image of \RefFig{fig:auto} & \multicolumn{1}{l|}{87.60} & \multicolumn{1}{l|}{115.03} & \multicolumn{1}{l|}{86.18} & \multicolumn{1}{l|}{87.85} \\ -\hspace{0.4cm} on the set of test images & & & & \\ +\hspace{0.4cm} on the set of test images +& 85.88 $\pm$ 2.60 & 106.64 $\pm$ 5.63 & 92.63 $\pm$ 4.37 & 87.03 $\pm$ 4.27 \\ \hspace{0.4cm} on CannyLines images & 86.02 $\pm$ 2.44 & 110.15 $\pm$ 6.51 & 89.23 $\pm$ 5.11 & 84.70 $\pm$ 2.98 \\ \hline diff --git a/Article/Expe_perf/PerfCompare.class b/Article/Expe_perf/PerfCompare.class new file mode 100644 index 0000000000000000000000000000000000000000..55e1775967cce0339d574ab041f1224e1f1d1284 Binary files /dev/null and b/Article/Expe_perf/PerfCompare.class differ diff --git a/Article/Expe_perf/PerfCompare.java b/Article/Expe_perf/PerfCompare.java new file mode 100644 index 0000000000000000000000000000000000000000..2ce4842ffbf9707b944db563a0d9482ac93ff8ca --- /dev/null +++ b/Article/Expe_perf/PerfCompare.java @@ -0,0 +1,137 @@ +import java.io.*; + +public class PerfCompare +{ + private static String[] names = { + "perf_iut_amphi1.txt", + "perf_iut_amphi2.txt", + "perf_iut_corridor1.txt", + "perf_iut_corridor2.txt", + "perf_iut_entrance.txt", + "perf_iut_labo1.txt", + "perf_iut_labo2.txt", + "perf_iut_library1.txt", + "perf_iut_mul1.txt", + "perf_iut_mul2.txt", + "perf_iut_office1.txt", + "perf_iut_office2.txt", + "perf_iut_office4.txt", + "perf_iut_outdoor1.txt", + "perf_iut_outdoor2.txt", + "perf_iut_outdoor3.txt", + "perf_iut_scc1.txt", + "perf_iut_scc2.txt", + "perf_iut_scc3.txt", + "perf_loria_indoor1.txt", + "perf_loria_indoor2.txt", + "perf_loria_indoor3.txt", + "perf_loria_office1.txt", + "perf_loria_outdoor1.txt", + "perf_vosges_castle1.txt", + "perf_vosges_castle2.txt", + "perf_vosges_corridor1.txt", + "perf_vosges_detail1.txt", + "perf_vosges_detail2.txt", + "perf_vosges_detail3.txt"}; + + + private double timeRatio = 0.; + private double countRatio = 0.; + private double longRatio = 0.; + private double lengthRatio = 0.; + private double widthRatio = 0.; + + public static void main (String[] args) throws IOException + { + PerfCompare[] perf = new PerfCompare[names.length]; + double meanTime = 0.; + double meanCount = 0.; + double meanLong = 0.; + double meanLength = 0.; + double meanWidth = 0.; + + for (int i = 0; i < names.length; i++) + { + perf[i] = new PerfCompare (names[i]); + meanTime += perf[i].timeRatio; + meanCount += perf[i].countRatio; + meanLong += perf[i].longRatio; + meanLength += perf[i].lengthRatio; + meanWidth += perf[i].widthRatio; + } + meanTime /= names.length; + meanCount /= names.length; + meanLong /= names.length; + meanLength /= names.length; + meanWidth /= names.length; + + double sdTime = 0.; + double sdCount = 0.; + double sdLong = 0.; + double sdLength = 0.; + double sdWidth = 0.; + for (int i = 0; i < names.length; i++) + { + sdTime += (perf[i].timeRatio - meanTime) + * (perf[i].timeRatio - meanTime); + sdCount += (perf[i].countRatio - meanCount) + * (perf[i].countRatio - meanCount); + sdLong += (perf[i].longRatio - meanLong) + * (perf[i].longRatio - meanLong); + sdLength += (perf[i].lengthRatio - meanLength) + * (perf[i].lengthRatio - meanLength); + sdWidth += (perf[i].widthRatio - meanWidth) + * (perf[i].widthRatio - meanWidth); + } + sdTime = Math.sqrt (sdTime / names.length); + sdCount = Math.sqrt (sdCount / names.length); + sdLong = Math.sqrt (sdLong / names.length); + sdLength = Math.sqrt (sdLength / names.length); + sdWidth = Math.sqrt (sdWidth / names.length); + + System.out.println ("Time : " + meanTime + " (" + sdTime + ")"); + System.out.println ("Count : " + meanCount + " (" + sdCount + ")"); + System.out.println ("Long : " + meanLong + " (" + sdLong + ")"); + System.out.println ("Lendth : " + meanLength + " (" + sdLength + ")"); + System.out.println ("Width : " + meanWidth + " (" + sdWidth + ")"); + } + + public PerfCompare (String name) throws IOException + { + BufferedReader flot = new BufferedReader (new FileReader (name)); + String val = flot.readLine (); // nb runs + val = flot.readLine (); // width + val = flot.readLine (); // height + val = flot.readLine (); // time + double t1 = (new Double (val)).doubleValue (); + val = flot.readLine (); // trials + val = flot.readLine (); // count of segments + int ns1 = (new Integer (val)).intValue (); + val = flot.readLine (); // count of long segments + int nl1 = (new Integer (val)).intValue (); + val = flot.readLine (); // mean length + double l1 = (new Double (val)).doubleValue (); + val = flot.readLine (); // mean width + double w1 = (new Double (val)).doubleValue (); + val = flot.readLine (); // mean width of long segments + val = flot.readLine (); // time + double t2 = (new Double (val)).doubleValue (); + val = flot.readLine (); // trials + val = flot.readLine (); // count of segments + int ns2 = (new Integer (val)).intValue (); + val = flot.readLine (); // count of long segments + int nl2 = (new Integer (val)).intValue (); + val = flot.readLine (); // mean length + double l2 = (new Double (val)).doubleValue (); + val = flot.readLine (); // mean width + double w2 = (new Double (val)).doubleValue (); + val = flot.readLine (); // mean width of long segments + flot.close (); + + timeRatio = t1 / t2; + countRatio = ns1 / (double) ns2; + longRatio = nl1 / (double) nl2; + lengthRatio = l1 / l2; + widthRatio = w1 / w2; + } +} diff --git a/Article/Expe_perf/perf_iut_amphi1.txt b/Article/Expe_perf/perf_iut_amphi1.txt new file mode 100644 index 0000000000000000000000000000000000000000..2f0ec4ae237e303700fc85c475428552f528dddf --- /dev/null +++ b/Article/Expe_perf/perf_iut_amphi1.txt @@ -0,0 +1,17 @@ +100 +768 +512 +4.6903 +1806 +660 +150 +30.5512 +2.27963 +2.2943 +5.72459 +1814 +636 +150 +31.725 +2.57986 +2.65468 diff --git a/Article/Expe_perf/perf_iut_amphi2.txt b/Article/Expe_perf/perf_iut_amphi2.txt new file mode 100644 index 0000000000000000000000000000000000000000..486774e7897f948e60cc338897dc75a0002c554b --- /dev/null +++ b/Article/Expe_perf/perf_iut_amphi2.txt @@ -0,0 +1,17 @@ +100 +768 +512 +6.40191 +2748 +1047 +148 +23.4331 +2.29331 +2.60233 +7.43268 +2638 +942 +171 +26.4888 +2.63111 +2.94765 diff --git a/Article/Expe_perf/perf_iut_corridor1.txt b/Article/Expe_perf/perf_iut_corridor1.txt new file mode 100644 index 0000000000000000000000000000000000000000..fb839eb30ea790079089001e3d751714f64e80ac --- /dev/null +++ b/Article/Expe_perf/perf_iut_corridor1.txt @@ -0,0 +1,17 @@ +100 +512 +768 +3.00952 +1219 +435 +113 +33.3889 +1.96156 +1.98553 +3.52095 +1191 +375 +101 +38.4183 +2.6502 +2.71477 diff --git a/Article/Expe_perf/perf_iut_corridor2.txt b/Article/Expe_perf/perf_iut_corridor2.txt new file mode 100644 index 0000000000000000000000000000000000000000..5bfc67ddfb592f7140b88777f834acc571d220e2 --- /dev/null +++ b/Article/Expe_perf/perf_iut_corridor2.txt @@ -0,0 +1,17 @@ +100 +768 +512 +2.76221 +1174 +408 +86 +32.2011 +1.72083 +1.61854 +3.10034 +1074 +354 +82 +37.2489 +2.15799 +2.11399 diff --git a/Article/Expe_perf/perf_iut_entrance.txt b/Article/Expe_perf/perf_iut_entrance.txt new file mode 100644 index 0000000000000000000000000000000000000000..56a4bd52f83ca24b4720cf298f85312df00b8919 --- /dev/null +++ b/Article/Expe_perf/perf_iut_entrance.txt @@ -0,0 +1,17 @@ +100 +604 +435 +5.89507 +2873 +875 +145 +26.5632 +2.17234 +2.29212 +6.96728 +2791 +796 +163 +29.9855 +2.60888 +2.67866 diff --git a/Article/Expe_perf/perf_iut_labo1.txt b/Article/Expe_perf/perf_iut_labo1.txt new file mode 100644 index 0000000000000000000000000000000000000000..2cb912c96e7791c3247109ba6ef5c72c1ef74f38 --- /dev/null +++ b/Article/Expe_perf/perf_iut_labo1.txt @@ -0,0 +1,17 @@ +100 +768 +512 +3.47058 +1210 +523 +124 +28.5383 +2.11452 +2.0609 +4.10393 +1186 +469 +129 +32.2115 +2.43933 +2.40623 diff --git a/Article/Expe_perf/perf_iut_labo2.txt b/Article/Expe_perf/perf_iut_labo2.txt new file mode 100644 index 0000000000000000000000000000000000000000..9aee17c6666e3e555589c0c6838df0ae166e37ff --- /dev/null +++ b/Article/Expe_perf/perf_iut_labo2.txt @@ -0,0 +1,17 @@ +100 +768 +512 +3.08177 +1070 +458 +92 +29.9653 +2.21609 +2.27448 +3.71473 +1011 +437 +113 +32.5916 +2.57131 +2.64624 diff --git a/Article/Expe_perf/perf_iut_library1.txt b/Article/Expe_perf/perf_iut_library1.txt new file mode 100644 index 0000000000000000000000000000000000000000..8cc2745bb87a02f66e39c194d39a9161cc330a9a --- /dev/null +++ b/Article/Expe_perf/perf_iut_library1.txt @@ -0,0 +1,17 @@ +100 +768 +512 +6.69281 +3042 +1012 +147 +22.7012 +2.40284 +2.60964 +7.74526 +2915 +962 +170 +24.584 +2.79463 +2.91575 diff --git a/Article/Expe_perf/perf_iut_mul1.txt b/Article/Expe_perf/perf_iut_mul1.txt new file mode 100644 index 0000000000000000000000000000000000000000..93f49d98bea161f868e9365d5fcd6efe96395b5f --- /dev/null +++ b/Article/Expe_perf/perf_iut_mul1.txt @@ -0,0 +1,17 @@ +100 +768 +512 +4.99343 +2016 +738 +148 +27.4874 +2.04314 +1.95366 +5.89653 +2058 +687 +144 +28.4664 +2.3839 +2.31797 diff --git a/Article/Expe_perf/perf_iut_mul2.txt b/Article/Expe_perf/perf_iut_mul2.txt new file mode 100644 index 0000000000000000000000000000000000000000..5fb6a935827080930deedfdcfb5b6e69a27124d4 --- /dev/null +++ b/Article/Expe_perf/perf_iut_mul2.txt @@ -0,0 +1,17 @@ +100 +768 +512 +4.00064 +1700 +614 +95 +24.8282 +2.15711 +2.15276 +4.69204 +1648 +579 +101 +26.3164 +2.40674 +2.41017 diff --git a/Article/Expe_perf/perf_iut_office1.txt b/Article/Expe_perf/perf_iut_office1.txt new file mode 100644 index 0000000000000000000000000000000000000000..6dbab70723e723716da8357ea9e95842ac23e2cd --- /dev/null +++ b/Article/Expe_perf/perf_iut_office1.txt @@ -0,0 +1,17 @@ +100 +512 +768 +4.05439 +1657 +576 +125 +29.6341 +2.11351 +2.13721 +4.80129 +1600 +525 +122 +33.409 +2.50289 +2.54529 diff --git a/Article/Expe_perf/perf_iut_office2.txt b/Article/Expe_perf/perf_iut_office2.txt new file mode 100644 index 0000000000000000000000000000000000000000..c6027ac10881f30f1c704e61b5f97881a05c1659 --- /dev/null +++ b/Article/Expe_perf/perf_iut_office2.txt @@ -0,0 +1,17 @@ +100 +512 +768 +2.39764 +872 +347 +66 +28.6302 +2.16436 +2.11984 +2.82771 +808 +327 +69 +31.397 +2.4599 +2.45493 diff --git a/Article/Expe_perf/perf_iut_office4.txt b/Article/Expe_perf/perf_iut_office4.txt new file mode 100644 index 0000000000000000000000000000000000000000..71128a8e2fa8b87b538beb98817029dc5aa4401f --- /dev/null +++ b/Article/Expe_perf/perf_iut_office4.txt @@ -0,0 +1,17 @@ +100 +800 +533 +2.59955 +914 +352 +94 +33.2509 +2.17087 +2.21914 +3.0047 +851 +306 +85 +38.5787 +2.47154 +2.46201 diff --git a/Article/Expe_perf/perf_iut_outdoor1.txt b/Article/Expe_perf/perf_iut_outdoor1.txt new file mode 100644 index 0000000000000000000000000000000000000000..dd0190ced4d53bd27599327889046737f260ba9b --- /dev/null +++ b/Article/Expe_perf/perf_iut_outdoor1.txt @@ -0,0 +1,17 @@ +100 +768 +512 +5.89527 +2667 +927 +114 +22.1006 +2.49616 +2.64012 +6.95665 +2642 +853 +138 +24.2389 +2.76982 +2.85027 diff --git a/Article/Expe_perf/perf_iut_outdoor2.txt b/Article/Expe_perf/perf_iut_outdoor2.txt new file mode 100644 index 0000000000000000000000000000000000000000..957c3b026cde446180fca189edf3d28494c51593 --- /dev/null +++ b/Article/Expe_perf/perf_iut_outdoor2.txt @@ -0,0 +1,17 @@ +100 +768 +512 +8.02477 +4230 +1196 +71 +14.7278 +2.63801 +2.28099 +8.66283 +4093 +1164 +75 +15.6502 +2.90617 +2.80733 diff --git a/Article/Expe_perf/perf_iut_outdoor3.txt b/Article/Expe_perf/perf_iut_outdoor3.txt new file mode 100644 index 0000000000000000000000000000000000000000..14e2811261fb6b02bf129d88d54ec415ca61cf37 --- /dev/null +++ b/Article/Expe_perf/perf_iut_outdoor3.txt @@ -0,0 +1,17 @@ +100 +768 +512 +6.04887 +2686 +801 +188 +31.9457 +2.14241 +2.11146 +7.28111 +2577 +748 +211 +35.3597 +2.69916 +2.71961 diff --git a/Article/Expe_perf/perf_iut_scc1.txt b/Article/Expe_perf/perf_iut_scc1.txt new file mode 100644 index 0000000000000000000000000000000000000000..bea695dd9e9e5734e225537ea7ac1057f9654657 --- /dev/null +++ b/Article/Expe_perf/perf_iut_scc1.txt @@ -0,0 +1,17 @@ +100 +768 +512 +5.17888 +1969 +791 +155 +25.8714 +2.25773 +2.29206 +6.04807 +1871 +705 +154 +29.3372 +2.55873 +2.60574 diff --git a/Article/Expe_perf/perf_iut_scc2.txt b/Article/Expe_perf/perf_iut_scc2.txt new file mode 100644 index 0000000000000000000000000000000000000000..fa7a3a7b0075a7650c8b0a7473d471bb420f29ac --- /dev/null +++ b/Article/Expe_perf/perf_iut_scc2.txt @@ -0,0 +1,17 @@ +100 +768 +512 +6.24317 +2752 +903 +160 +25.5535 +2.25717 +2.21315 +7.27919 +2667 +850 +168 +27.4307 +2.56642 +2.51868 diff --git a/Article/Expe_perf/perf_iut_scc3.txt b/Article/Expe_perf/perf_iut_scc3.txt new file mode 100644 index 0000000000000000000000000000000000000000..26ff0217856c642f2da52f98bff9cee5fb48e58e --- /dev/null +++ b/Article/Expe_perf/perf_iut_scc3.txt @@ -0,0 +1,17 @@ +100 +768 +512 +4.41504 +1852 +692 +122 +24.3828 +2.10468 +2.10685 +5.22814 +1822 +652 +133 +25.929 +2.50248 +2.4839 diff --git a/Article/Expe_perf/perf_loria_indoor1.txt b/Article/Expe_perf/perf_loria_indoor1.txt new file mode 100644 index 0000000000000000000000000000000000000000..b7df972b6ac8b579b18a93c1a3eced520eee42c0 --- /dev/null +++ b/Article/Expe_perf/perf_loria_indoor1.txt @@ -0,0 +1,17 @@ +100 +768 +512 +5.86233 +2790 +921 +110 +20.7075 +2.26903 +2.14334 +6.88069 +2673 +909 +110 +21.8659 +2.52832 +2.39787 diff --git a/Article/Expe_perf/perf_loria_indoor2.txt b/Article/Expe_perf/perf_loria_indoor2.txt new file mode 100644 index 0000000000000000000000000000000000000000..3ba81ef0396c78bad8fc459e1021180328b4755f --- /dev/null +++ b/Article/Expe_perf/perf_loria_indoor2.txt @@ -0,0 +1,17 @@ +100 +768 +512 +4.91989 +2184 +779 +123 +22.4072 +2.13355 +2.09208 +5.75351 +2077 +716 +127 +24.7289 +2.48592 +2.39442 diff --git a/Article/Expe_perf/perf_loria_indoor3.txt b/Article/Expe_perf/perf_loria_indoor3.txt new file mode 100644 index 0000000000000000000000000000000000000000..90f1df85a68db14ee1cd112afaa60541d7efb942 --- /dev/null +++ b/Article/Expe_perf/perf_loria_indoor3.txt @@ -0,0 +1,17 @@ +100 +768 +512 +5.01374 +1625 +649 +195 +40.2443 +1.9953 +1.93206 +6.06808 +1659 +561 +178 +45.238 +2.40001 +2.38361 diff --git a/Article/Expe_perf/perf_loria_office1.txt b/Article/Expe_perf/perf_loria_office1.txt new file mode 100644 index 0000000000000000000000000000000000000000..da984494bb4a5946a7fe31d92313f699f0d44015 --- /dev/null +++ b/Article/Expe_perf/perf_loria_office1.txt @@ -0,0 +1,17 @@ +100 +768 +512 +5.88139 +2690 +914 +137 +22.5576 +2.12867 +1.95291 +6.94068 +2660 +891 +139 +23.289 +2.41498 +2.22931 diff --git a/Article/Expe_perf/perf_loria_outdoor1.txt b/Article/Expe_perf/perf_loria_outdoor1.txt new file mode 100644 index 0000000000000000000000000000000000000000..f641b1c7968f30c5c53eec46aad9444ae3e8755a --- /dev/null +++ b/Article/Expe_perf/perf_loria_outdoor1.txt @@ -0,0 +1,17 @@ +100 +768 +512 +5.80022 +2678 +839 +87 +20.24 +2.43775 +2.57967 +6.60938 +2584 +825 +104 +21.8391 +2.66773 +2.72427 diff --git a/Article/Expe_perf/perf_vosges_castle1.txt b/Article/Expe_perf/perf_vosges_castle1.txt new file mode 100644 index 0000000000000000000000000000000000000000..b6fd3d24087eca7314e77e4a9c3b970428511706 --- /dev/null +++ b/Article/Expe_perf/perf_vosges_castle1.txt @@ -0,0 +1,17 @@ +100 +768 +512 +5.80337 +3169 +865 +75 +15.3847 +2.21368 +2.12883 +6.33414 +3009 +919 +80 +15.4394 +2.51226 +2.43735 diff --git a/Article/Expe_perf/perf_vosges_castle2.txt b/Article/Expe_perf/perf_vosges_castle2.txt new file mode 100644 index 0000000000000000000000000000000000000000..799fe83dcae3e09e6bb41cefc7238e65e7d91581 --- /dev/null +++ b/Article/Expe_perf/perf_vosges_castle2.txt @@ -0,0 +1,17 @@ +100 +768 +512 +2.85011 +1404 +415 +55 +22.5612 +2.25116 +2.39249 +3.21413 +1363 +403 +61 +23.2159 +2.45696 +2.50577 diff --git a/Article/Expe_perf/perf_vosges_corridor1.txt b/Article/Expe_perf/perf_vosges_corridor1.txt new file mode 100644 index 0000000000000000000000000000000000000000..0a5585b08301111ea8b45ec9571e82a8dae6c0ee --- /dev/null +++ b/Article/Expe_perf/perf_vosges_corridor1.txt @@ -0,0 +1,17 @@ +100 +512 +341 +1.14078 +342 +160 +50 +37.3961 +2.00629 +2.01085 +1.3908 +343 +142 +47 +41.1792 +2.36076 +2.33786 diff --git a/Article/Expe_perf/perf_vosges_detail1.txt b/Article/Expe_perf/perf_vosges_detail1.txt new file mode 100644 index 0000000000000000000000000000000000000000..8453d717bf51af5adb71a2b13438374b394307ed --- /dev/null +++ b/Article/Expe_perf/perf_vosges_detail1.txt @@ -0,0 +1,17 @@ +100 +735 +570 +12.9189 +7209 +2108 +50 +11.4931 +2.84108 +3.21585 +14.1981 +6802 +2101 +56 +12.2208 +3.00296 +3.21142 diff --git a/Article/Expe_perf/perf_vosges_detail2.txt b/Article/Expe_perf/perf_vosges_detail2.txt new file mode 100644 index 0000000000000000000000000000000000000000..2786900cc0e9a768a1c95d744740364406317ba1 --- /dev/null +++ b/Article/Expe_perf/perf_vosges_detail2.txt @@ -0,0 +1,17 @@ +100 +458 +325 +3.12422 +1653 +478 +49 +16.9293 +2.66354 +2.70177 +3.56203 +1623 +496 +41 +16.3789 +2.85431 +2.73118 diff --git a/Article/Expe_perf/perf_vosges_detail3.txt b/Article/Expe_perf/perf_vosges_detail3.txt new file mode 100644 index 0000000000000000000000000000000000000000..8166fae95f521ef6ea31bfa2a3938804cc1cc8c7 --- /dev/null +++ b/Article/Expe_perf/perf_vosges_detail3.txt @@ -0,0 +1,17 @@ +100 +314 +508 +3.16186 +1637 +453 +64 +23.1678 +2.60882 +2.83866 +3.65571 +1619 +464 +71 +22.5974 +2.8246 +2.94086 diff --git a/Article/conclusion.tex b/Article/conclusion.tex index 3347917291076da1fa438d2dda316c158fcd80a4..7a50214c598531dd62d0eeb118bfc297a403e293 100755 --- a/Article/conclusion.tex +++ b/Article/conclusion.tex @@ -4,8 +4,8 @@ This paper introduced a new straight edge detector based on a local analysis of the image gradient and on the use of blurred segments to embed an -estimation of the edge thickness. -It relies on directional scans of the image around maximal values of the +estimation of the detected edge thickness. +It relies on directional scans of the input image around maximal values of the gradient magnitude, that have previously been presented in \cite{KerautretEven09}. %Despite of good performances achieved, the former approach suffers of two diff --git a/Article/expe.tex b/Article/expe.tex index 9454e82b5a7a2ffa3662af07dcabae0719f6d18f..e27cf49d240b650c3765cdf352ae52c7ff6a6696 100755 --- a/Article/expe.tex +++ b/Article/expe.tex @@ -6,7 +6,7 @@ The main goal of this work is to provide straight segments with a quality indication through the associated width parameter. In lack of available reference tool, the evaluation stage mostly aims at quantifying the advantages of the new detector compared to the previous -detector in unsupervised context. +one in unsupervised context. For a fair comparison, the process flow of the former method (the initial detection followed by two refinement steps) is integrated as an option into the code of the new detector, so that both methods rely on the same diff --git a/Article/intro.tex b/Article/intro.tex index 0222bafc54aacf561e2047d3a62c5ca97400d5d3..d4fa3d82574cd1be27b4880b582914c9f112fb1f 100755 --- a/Article/intro.tex +++ b/Article/intro.tex @@ -36,7 +36,7 @@ In a former paper \cite{KerautretEven09}, an efficient tool to detect blurred segments of fixed width in gray-level images was already introduced. It is based on a first rough detection in a local image area defined by the user. The goal is to disclose the presence of a straight edge. -Therefore an as simple test as the gradient maximal value is performed. +Therefore as simple a test as the gradient maximal value is performed. In case of success, refinement steps are run through an exploration of the image in the direction of the detected edge. In order to prevent local disturbances such as the presence of a sharper @@ -56,7 +56,7 @@ on the edge quality is rather poor, and especially when the edge is thin, the risk to incorporate outlier points is quite high, thus producing a biased estimation of the edge orientation. Then, two refinement steps are systematically run. -On one hand, this is useless when the first detection is successfull. +On the one hand, this is useless when the first detection is successfull. On the other hand, there is no guarantee that this approach is able to process larger images. The search direction relies on the support vector of the blurred segment @@ -78,8 +78,7 @@ improvement of the time performance of the detector. They are also put forward within a global line extraction algorithm which can be evaluated through an online demonstration. -In the next section, the main theoretical notions this work relies on are -introduced. +In the next section, the main theoretical notions are introduced. The new detector workflow, the adaptive directional scan, the control of the assigned with and their integration into both supervised and unsupervised contexts are then presented in \RefSec{sec:method}. diff --git a/Article/method.tex b/Article/method.tex index 96935648f75e6887629826d3f0f3b5d7623e82f5..45e321155534c60c443882e2273d3bcaa718b3d9 100755 --- a/Article/method.tex +++ b/Article/method.tex @@ -224,7 +224,7 @@ $\vec{AB}_\perp$ to the stroke as input to build a static scan of fixed width $2~\varepsilon_{ini}$, and $M_j$ is used as start point of the blurred segment; \item the occupancy mask is filled in with the points of the dilated blurred -segments $\mathcal{B}_j''$ at the end of each successful detection +segments $\mathcal{B}_j'$ at the end of each successful detection (a 21 pixels neighborhood is used); \item points marked as occupied are rejected when selecting candidates for the blurred segment extension in the fine tracking step. @@ -239,14 +239,14 @@ in opposite edge selection mode. An unsupervised mode is also proposed to automatically detect all the straight edges in the image. The principle of this automatic detection is described in Algorithm 2. A stroke that crosses the whole image, is -swept in both direction, vertical then horizontal, from the center to +swept in both directions, vertical then horizontal, from the center to the borders. At each position, the multi-detection algorithm is run to collect all the segments found under the stroke. In the present work, the stroke sweeping step $\delta$ is set to 10 pixels. - -The automatic detection of blurred segments in a whole image is left available -for testing from an online demonstration and \textit{GitHub} source code at this address: \\ +The automatic detection of blurred segments in a whole image is available +for testing from an online demonstration +and \textit{GitHub} source code at this address: \\ \href{http://ipol-geometry.loria.fr/~kerautre/ipol_demo/AdaptDirBS_IPOLDemo}{ \small{\url{http://ipol-geometry.loria.fr/~kerautre/ipol_demo/AdaptDirBS_IPOLDemo}}} diff --git a/Article/notions.tex b/Article/notions.tex index a35c9c08230254ef4451313ce928ecc23757c0ea..5f84830702418db15bb15686f780af3786565cf4 100755 --- a/Article/notions.tex +++ b/Article/notions.tex @@ -9,7 +9,8 @@ defined in the digital geometry literature \cite{KletteRosenfeld04}. Only the 2D case is considered here. \begin{definition} -A digital line $\mathcal{L}(a,b,c,\nu)$, with $(a,b,c,\nu) \in \mathbb{Z}^4$, +A \textbf{digital straight line} $\mathcal{L}(a,b,c,\nu)$, +with $(a,b,c,\nu) \in \mathbb{Z}^4$, is the set of points $P(x,y)$ of $\mathbb{Z}^2$ that satisfy : $0 \leq ax + by - c < \nu$. \end{definition} @@ -19,12 +20,12 @@ digital line $\mathcal{L}$, $w(\mathcal{L}) = \nu$ its arithmetical width, $h(\mathcal{L}) = c$ its shift to origin, and $p(\mathcal{L}) = max(|a|,|b|)$ its period (i.e. the length of its periodic pattern). When $\nu = p(\mathcal{L})$, then $\mathcal{L}$ is the narrowest 8-connected -line and is called a naive line. +line and is called a {\it naive line}. \begin{definition} -A blurred segment $\mathcal{B}$ of assigned width $\varepsilon$ is a set -of points in $\mathbb{Z}^2$ that all belong to a digital line $\mathcal{L}$ -of arithmetical width $w(\mathcal{L}) = \varepsilon$. +A \textbf{blurred segment} $\mathcal{B}$ of assigned width $\varepsilon$ is +a set of points in $\mathbb{Z}^2$ that all belong to a digital straight line +$\mathcal{L}$ of arithmetical width $w(\mathcal{L}) = \varepsilon$. \end{definition} A linear-time algorithm to recognize a blurred segment of assigned width @@ -55,7 +56,7 @@ and $\mathcal{B}_i = \mathcal{B}_{i-1}$.} \end{figure} Associated to this primitive, the following definition of a directional scan -also based on digital straight lines is also used in this work. +also based on digital straight lines is used in this work. \subsection{Directional scan}