lines_list_t;
209 |
210 | #endif // !_TYPES_
211 |
--------------------------------------------------------------------------------
/thirdparty/LSD/LSD a Line Segment Detector.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/LSD a Line Segment Detector.pdf
--------------------------------------------------------------------------------
/thirdparty/LSD/Makefile:
--------------------------------------------------------------------------------
1 | # -----------------------------------------------------------------------------
2 | #
3 | # LSD - Line Segment Detector on digital images
4 | #
5 | # Copyright 2007-2010 rafael grompone von gioi (grompone@gmail.com)
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Affero General Public License as
9 | # published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Affero General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Affero General Public License
18 | # along with this program. If not, see .
19 | #
20 | # -----------------------------------------------------------------------------
21 |
22 | all: lsd lsd_call_example
23 |
24 | lsd: lsd.c lsd.h lsd_cmd.c
25 | cc -O3 -lm -o lsd lsd_cmd.c lsd.c
26 |
27 | lsd_call_example: lsd.c lsd.h lsd_call_example.c
28 | cc -lm -o lsd_call_example lsd_call_example.c lsd.c
29 |
30 | strict: lsd.c lsd.h lsd_cmd.c
31 | cc -fPIC -ansi -Wall -Wextra -Werror -lm -o lsd_strict lsd.c lsd_cmd.c
32 |
33 | doc: lsd.c lsd.h doxygen.config
34 | doxygen doxygen.config
35 |
36 | clean:
37 | rm -f lsd lsd_call_example lsd_strict
38 |
39 | cleandoc:
40 | rm -rf doc
41 |
42 | # -----------------------------------------------------------------------------
43 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/annotated.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: Annotated Index
4 |
5 |
6 |
7 |
8 | LSD Data Structures Here are the data structures with brief descriptions:
18 | Generated on Fri Dec 3 10:18:48 2010 for LSD by
19 |
20 |
21 | 1.3.4
22 |
23 |
24 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/doxygen.css:
--------------------------------------------------------------------------------
1 | H1 {
2 | text-align: center;
3 | font-family: Arial, Helvetica, sans-serif;
4 | }
5 | H2 {
6 | font-family: Geneva, Arial, Helvetica, sans-serif;
7 | }
8 | CAPTION { font-weight: bold }
9 | DIV.qindex { width: 100%;
10 | background-color: #eeeeff;
11 | border: 4px solid #eeeeff;
12 | text-align: center;
13 | margin-bottom: 2px
14 | }
15 | A.qindex { text-decoration: none; font-weight: bold; color: #0000ee }
16 | A.qindex:visited { text-decoration: none; font-weight: bold; color: #0000ee }
17 | A.qindex:hover { text-decoration: none; background-color: #ddddff }
18 | A.qindexHL { text-decoration: none; font-weight: bold;
19 | background-color: #6666cc;
20 | color: #ffffff
21 | }
22 | A.qindexHL:hover { text-decoration: none; background-color: #6666cc; color: #ffffff }
23 | A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
24 | A.el { text-decoration: none; font-weight: bold }
25 | A.elRef { font-weight: bold }
26 | A.code { text-decoration: none; font-weight: normal; color: #4444ee }
27 | A.codeRef { font-weight: normal; color: #4444ee }
28 | A:hover { text-decoration: none; background-color: #f2f2ff }
29 | DL.el { margin-left: -1cm }
30 | DIV.fragment {
31 | width: 98%;
32 | border: 1px solid #CCCCCC;
33 | background-color: #f5f5f5;
34 | padding-left: 4px;
35 | margin: 4px;
36 | }
37 | DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
38 | TD.md { background-color: #f2f2ff; font-weight: bold; }
39 | TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; }
40 | TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; }
41 | DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold }
42 | DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller }
43 | BODY {
44 | background: white;
45 | color: black;
46 | margin-right: 20px;
47 | margin-left: 20px;
48 | }
49 | TD.indexkey {
50 | background-color: #eeeeff;
51 | font-weight: bold;
52 | padding-right : 10px;
53 | padding-top : 2px;
54 | padding-left : 10px;
55 | padding-bottom : 2px;
56 | margin-left : 0px;
57 | margin-right : 0px;
58 | margin-top : 2px;
59 | margin-bottom : 2px
60 | }
61 | TD.indexvalue {
62 | background-color: #eeeeff;
63 | font-style: italic;
64 | padding-right : 10px;
65 | padding-top : 2px;
66 | padding-left : 10px;
67 | padding-bottom : 2px;
68 | margin-left : 0px;
69 | margin-right : 0px;
70 | margin-top : 2px;
71 | margin-bottom : 2px
72 | }
73 | TR.memlist {
74 | background-color: #f0f0f0;
75 | }
76 | P.formulaDsp { text-align: center; }
77 | IMG.formulaDsp { }
78 | IMG.formulaInl { vertical-align: middle; }
79 | SPAN.keyword { color: #008000 }
80 | SPAN.keywordtype { color: #604020 }
81 | SPAN.keywordflow { color: #e08000 }
82 | SPAN.comment { color: #800000 }
83 | SPAN.preprocessor { color: #806020 }
84 | SPAN.stringliteral { color: #002080 }
85 | SPAN.charliteral { color: #008080 }
86 | .mdTable {
87 | border: 1px solid #868686;
88 | background-color: #f2f2ff;
89 | }
90 | .mdRow {
91 | padding: 8px 20px;
92 | }
93 | .mdescLeft {
94 | font-size: smaller;
95 | font-family: Arial, Helvetica, sans-serif;
96 | background-color: #FAFAFA;
97 | padding-left: 8px;
98 | border-top: 1px none #E0E0E0;
99 | border-right: 1px none #E0E0E0;
100 | border-bottom: 1px none #E0E0E0;
101 | border-left: 1px none #E0E0E0;
102 | margin: 0px;
103 | }
104 | .mdescRight {
105 | font-size: smaller;
106 | font-family: Arial, Helvetica, sans-serif;
107 | font-style: italic;
108 | background-color: #FAFAFA;
109 | padding-left: 4px;
110 | border-top: 1px none #E0E0E0;
111 | border-right: 1px none #E0E0E0;
112 | border-bottom: 1px none #E0E0E0;
113 | border-left: 1px none #E0E0E0;
114 | margin: 0px;
115 | padding-bottom: 0px;
116 | padding-right: 8px;
117 | }
118 | .memItemLeft {
119 | padding: 1px 0px 0px 8px;
120 | margin: 4px;
121 | border-top-width: 1px;
122 | border-right-width: 1px;
123 | border-bottom-width: 1px;
124 | border-left-width: 1px;
125 | border-top-style: solid;
126 | border-top-color: #E0E0E0;
127 | border-right-color: #E0E0E0;
128 | border-bottom-color: #E0E0E0;
129 | border-left-color: #E0E0E0;
130 | border-right-style: none;
131 | border-bottom-style: none;
132 | border-left-style: none;
133 | background-color: #FAFAFA;
134 | font-family: Geneva, Arial, Helvetica, sans-serif;
135 | font-size: 12px;
136 | }
137 | .memItemRight {
138 | padding: 1px 0px 0px 8px;
139 | margin: 4px;
140 | border-top-width: 1px;
141 | border-right-width: 1px;
142 | border-bottom-width: 1px;
143 | border-left-width: 1px;
144 | border-top-style: solid;
145 | border-top-color: #E0E0E0;
146 | border-right-color: #E0E0E0;
147 | border-bottom-color: #E0E0E0;
148 | border-left-color: #E0E0E0;
149 | border-right-style: none;
150 | border-bottom-style: none;
151 | border-left-style: none;
152 | background-color: #FAFAFA;
153 | font-family: Geneva, Arial, Helvetica, sans-serif;
154 | font-size: 13px;
155 | }
156 | .search { color: #0000ee;
157 | font-weight: bold;
158 | }
159 | FORM.search {
160 | margin-bottom: 0px;
161 | margin-top: 0px;
162 | }
163 | INPUT.search { font-size: 75%;
164 | color: #000080;
165 | font-weight: normal;
166 | background-color: #eeeeff;
167 | }
168 | TD.tiny { font-size: 75%;
169 | }
170 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/doxygen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/doxygen.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/files.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: File Index
4 |
5 |
6 |
7 |
8 | LSD File List Here is a list of all files with brief descriptions:
12 | Generated on Fri Dec 3 10:18:17 2010 for LSD by
13 |
14 |
15 | 1.3.4
16 |
17 |
18 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/form_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/form_0.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/form_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/form_1.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/form_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/form_10.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/form_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/form_2.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/form_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/form_3.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/form_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/form_4.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/form_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/form_5.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/form_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/form_6.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/form_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/form_7.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/form_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/form_8.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/form_9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/form_9.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/formula.repository:
--------------------------------------------------------------------------------
1 | \form#0:\[ G(x,y) = \frac{1}{2\pi\sigma^2} e^{-\frac{x^2+y^2}{2\sigma^2}} \]
2 | \form#1:\[ G(x,y) = G(x) * G(y) \]
3 | \form#2:\[ G(x) = \frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{x^2}{2\sigma^2}}. \]
4 | \form#3:\[ \Gamma(x) = \frac{ \sum_{n=0}^{N} q_n x^n }{ \Pi_{n=0}^{N} (x+n) } (x+5.5)^{x+0.5} e^{-(x+5.5)} \]
5 | \form#4:\[ \log\Gamma(x) = \log\left( \sum_{n=0}^{N} q_n x^n \right) + (x+0.5) \log(x+5.5) - (x+5.5) - \sum_{n=0}^{N} \log(x+n) \]
6 | \form#5:\[ \Gamma(x) = \sqrt{\frac{2\pi}{x}} \left( \frac{x}{e} \sqrt{ x\sinh(1/x) + \frac{1}{810x^6} } \right)^x \]
7 | \form#6:\[ \log\Gamma(x) = 0.5\log(2\pi) + (x-0.5)\log(x) - x + 0.5x\log\left( x\sinh(1/x) + \frac{1}{810x^6} \right). \]
8 | \form#7:\[ \mathrm{NFA} = NT \cdot B(n,k,p) \]
9 | \form#8:\[ B(n,k,p) = \sum_{j=k}^n \left(\begin{array}{c}n\\j\end{array}\right) p^{j} (1-p)^{n-j} \]
10 | \form#9:\[ \left(\begin{array}{c}n\\k\end{array}\right) = \frac{ \Gamma(n+1) }{ \Gamma(k+1) \cdot \Gamma(n-k+1) }. \]
11 | \form#10:\[ A = \left(\begin{array}{cc} Ixx & Ixy \\ Ixy & Iyy \\ \end{array}\right) \]
12 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/functions.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: Compound Member Index
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | Here is a list of all struct and union fields with links to the structures/unions they belong to:
12 | data
13 | : image_double_s , image_int_s , image_char_s dim
14 | : ntuple_list_s dx
15 | : rect dy
16 | : rect max_size
17 | : ntuple_list_s next
18 | : coorlist p
19 | : rect prec
20 | : rect size
21 | : ntuple_list_s theta
22 | : rect values
23 | : ntuple_list_s vx
24 | : rect_iter vy
25 | : rect_iter width
26 | : rect x
27 | : rect_iter , rect , point , coorlist x1
28 | : rect x2
29 | : rect xsize
30 | : image_double_s , image_int_s , image_char_s y
31 | : rect_iter , rect , point , coorlist y1
32 | : rect y2
33 | : rect ye
34 | : rect_iter ys
35 | : rect_iter ysize
36 | : image_double_s , image_int_s , image_char_s
37 | Generated on Fri Dec 3 10:18:48 2010 for LSD by
38 |
39 |
40 | 1.3.4
41 |
42 |
43 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/functions_vars.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: Compound Member Index
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | data
13 | : image_double_s , image_int_s , image_char_s dim
14 | : ntuple_list_s dx
15 | : rect dy
16 | : rect max_size
17 | : ntuple_list_s next
18 | : coorlist p
19 | : rect prec
20 | : rect size
21 | : ntuple_list_s theta
22 | : rect values
23 | : ntuple_list_s vx
24 | : rect_iter vy
25 | : rect_iter width
26 | : rect x
27 | : rect_iter , rect , point , coorlist x1
28 | : rect x2
29 | : rect xsize
30 | : image_double_s , image_int_s , image_char_s y
31 | : rect_iter , rect , point , coorlist y1
32 | : rect y2
33 | : rect ye
34 | : rect_iter ys
35 | : rect_iter ysize
36 | : image_double_s , image_int_s , image_char_s
37 | Generated on Fri Dec 3 10:18:49 2010 for LSD by
38 |
39 |
40 | 1.3.4
41 |
42 |
43 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/globals_defs.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: File Member Index
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
25 | Generated on Fri Dec 3 10:18:49 2010 for LSD by
26 |
27 |
28 | 1.3.4
29 |
30 |
31 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/globals_func.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: File Member Index
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | add_5tuple()
16 | : lsd.c angle_diff()
17 | : lsd.c angle_diff_signed()
18 | : lsd.c
19 |
20 | dist()
21 | : lsd.c double_equal()
22 | : lsd.c
23 |
24 | enlarge_ntuple_list()
25 | : lsd.c error()
26 | : lsd.c
27 |
33 |
34 | gaussian_kernel()
35 | : lsd.c gaussian_sampler()
36 | : lsd.c get_theta()
37 | : lsd.c
38 |
39 | inter_hi()
40 | : lsd.c inter_low()
41 | : lsd.c isaligned()
42 | : lsd.c
43 |
51 |
61 |
74 | Generated on Fri Dec 3 10:18:49 2010 for LSD by
75 |
76 |
77 | 1.3.4
78 |
79 |
80 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/globals_type.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: File Member Index
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
17 | Generated on Fri Dec 3 10:18:49 2010 for LSD by
18 |
19 |
20 | 1.3.4
21 |
22 |
23 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/graph_legend.dot:
--------------------------------------------------------------------------------
1 | digraph G
2 | {
3 | edge [fontname="Helvetica",fontsize=10,labelfontname="Helvetica",labelfontsize=10];
4 | node [fontname="Helvetica",fontsize=10,shape=record];
5 | Node9 [shape="box",label="Inherited",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",style="filled" fontcolor="white"];
6 | Node10 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"];
7 | Node10 [shape="box",label="PublicBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPublicBase.html"];
8 | Node11 -> Node10 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"];
9 | Node11 [shape="box",label="Truncated",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="red",URL="$classTruncated.html"];
10 | Node13 -> Node9 [dir=back,color="darkgreen",fontsize=10,style="solid",fontname="Helvetica"];
11 | Node13 [shape="box",label="ProtectedBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classProtectedBase.html"];
12 | Node14 -> Node9 [dir=back,color="firebrick4",fontsize=10,style="solid",fontname="Helvetica"];
13 | Node14 [shape="box",label="PrivateBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPrivateBase.html"];
14 | Node15 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"];
15 | Node15 [shape="box",label="Undocumented",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="grey75"];
16 | Node16 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"];
17 | Node16 [shape="box",label="Templ< int >",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"];
18 | Node17 -> Node16 [dir=back,color="orange",fontsize=10,style="dashed",label="< int >",fontname="Helvetica"];
19 | Node17 [shape="box",label="Templ< T >",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"];
20 | Node18 -> Node9 [dir=back,color="darkorchid3",fontsize=10,style="dashed",label="m_usedClass",fontname="Helvetica"];
21 | Node18 [shape="box",label="Used",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classUsed.html"];
22 | }
23 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/graph_legend.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: Graph Legend
4 |
5 |
6 |
7 |
8 | Graph Legend This page explains how to interpret the graphs that are generated by doxygen.
9 | Consider the following example:
10 | class Invisible { };
11 |
12 |
13 | class Truncated : public Invisible { };
14 |
15 |
16 | class Undocumented { };
17 |
18 |
19 | class PublicBase : public Truncated { };
20 |
21 |
22 | template <class T> class Templ { };
23 |
24 |
25 | class ProtectedBase { };
26 |
27 |
28 | class PrivateBase { };
29 |
30 |
31 | class Used { };
32 |
33 |
34 | class Inherited : public PublicBase ,
35 | protected ProtectedBase ,
36 | private PrivateBase ,
37 | public Undocumented
38 | public Templ <int>
39 | {
40 | private :
41 | Used *m_usedClass;
42 | };
43 | If the MAX_DOT_GRAPH_HEIGHT
tag in the configuration file is set to 240 this will result in the following graph:
44 |
45 |
46 |
47 |
48 | The boxes in the above graph have the following meaning:
49 |
50 | A filled black box represents the struct or class for which the graph is generated.
51 |
52 | A box with a black border denotes a documented struct or class.
53 |
54 | A box with a grey border denotes an undocumented struct or class.
55 |
56 | A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
57 |
58 | The arrows have the following meaning:
59 |
60 | A dark blue arrow is used to visualize a public inheritance relation between two classes.
61 |
62 | A dark green arrow is used for protected inheritance.
63 |
64 | A dark red arrow is used for private inheritance.
65 |
66 | A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
67 |
68 | A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
69 |
70 | Generated on Fri Dec 3 10:18:49 2010 for LSD by
71 |
72 |
73 | 1.3.4
74 |
75 |
76 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/graph_legend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/graph_legend.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: LSD code documentation
4 |
5 |
6 |
7 |
8 | LSD code documentation
9 |
10 | This is an implementation of the Line Segment Detector described in the paper:
11 | "LSD: A Fast Line Segment Detector with a False Detection Control" by Rafael Grompone von Gioi, Jeremie Jakubowicz, Jean-Michel Morel, and Gregory Randall, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 32, no. 4, pp. 722-732, April, 2010.
12 | and in more details in the CMLA Technical Report:
13 | "LSD: A Line Segment Detector, Technical Report", by Rafael Grompone von Gioi, Jeremie Jakubowicz, Jean-Michel Morel, Gregory Randall, CMLA, ENS Cachan, 2010.
14 | The version implemented here includes some further improvements described on the LSD page at www.ipol.im. That same page includes more information, including this code and an online demo version:
15 | http://www.ipol.im/pub/algo/gjmr_line_segment_detector
16 | The module's main function is lsd() .
17 | The source code is contained in two files: lsd.h and lsd.c .
18 | HISTORY:
19 | version 1.5 - dic 2010: Changes in 'refine', -W option added, and more comments added. version 1.4 - jul 2010: lsd_scale interface added and doxygen doc. version 1.3 - feb 2010: Multiple bug correction and improved code. version 1.2 - dic 2009: First full Ansi C Language version. version 1.1 - sep 2009: Systematic subsampling to scale 0.8 and correction to partially handle"angle problem". version 1.0 - jan 2009: First complete Megawave2 and Ansi C Language version.
20 |
21 |
Author: rafael grompone von gioi (grompone@gmail.com )
22 | Generated on Fri Dec 3 10:18:17 2010 for LSD by
23 |
24 |
25 | 1.3.4
26 |
27 |
28 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c__incl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c__incl.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a15_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a15_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a16_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a16_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a17_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a17_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a18_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a18_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a19_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a19_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a20_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a20_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a21_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a21_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a22_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a22_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a23_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a23_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a24_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a24_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a25_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a25_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a26_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a26_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a27_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a27_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a28_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a28_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a29_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a29_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a30_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a30_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a31_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a31_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a36_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a36_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a37_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a37_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a38_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a38_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a39_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a39_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a40_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a40_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a41_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a41_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a42_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a42_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a43_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a43_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a44_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a44_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a45_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a45_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a46_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a46_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a47_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a47_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a48_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a48_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a49_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a49_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a50_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a50_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a51_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a51_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a52_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a52_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8c_a53_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8c_a53_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h__dep__incl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h__dep__incl.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a10_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a10_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a11_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a11_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a12_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a12_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a13_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a13_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a14_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a14_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a15_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a15_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a16_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a16_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a17_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a17_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a4_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a4_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a5_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a5_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a6_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a6_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a7_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a7_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a8_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a8_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/lsd_8h_a9_cgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/lsd_8h_a9_cgraph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/structcoorlist.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: coorlist struct Reference
4 |
5 |
6 |
7 |
8 | coorlist Struct Reference Collaboration diagram for coorlist:
9 | [legend ] Detailed Description
10 | Chained list of coordinates.
11 |
12 |
13 |
14 | Definition at line 114 of file lsd.c .
15 |
16 | Data Fields
17 | int x
18 |
19 | int y
20 |
21 | coorlist * next
22 |
23 |
24 | Field Documentation
25 |
26 |
27 |
28 |
29 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 | Definition at line 117 of file lsd.c .
47 |
48 |
49 |
50 |
51 |
52 |
53 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 | Definition at line 116 of file lsd.c .
71 |
72 |
73 |
74 |
75 |
76 |
77 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 | Definition at line 116 of file lsd.c .
95 |
96 |
97 | The documentation for this struct was generated from the following file:
99 | Generated on Fri Dec 3 10:18:49 2010 for LSD by
100 |
101 |
102 | 1.3.4
103 |
104 |
105 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/structcoorlist__coll__graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSD/doc/structcoorlist__coll__graph.png
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/structimage__char__s.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: image_char_s struct Reference
4 |
5 |
6 |
7 |
8 | image_char_s Struct Reference #include <lsd.h >
9 |
10 |
Detailed Description
11 | char image data type
12 |
13 | The pixel value at (x,y) is accessed by:
14 | image->data[ x + y * image->xsize ]
15 | with x and y integer.
16 |
17 |
18 |
19 | Definition at line 80 of file lsd.h .
20 |
21 | Data Fields
22 | unsigned char * data
23 |
24 | unsigned int xsize
25 |
26 | unsigned int ysize
27 |
28 |
29 | Field Documentation
30 |
31 |
32 |
33 |
34 |
38 |
39 |
40 |
41 |
56 |
57 |
58 |
59 |
60 |
64 |
65 |
66 |
67 |
82 |
83 |
84 |
85 |
86 |
90 |
91 |
92 |
93 |
108 | The documentation for this struct was generated from the following file:
110 | Generated on Fri Dec 3 10:18:49 2010 for LSD by
111 |
112 |
113 | 1.3.4
114 |
115 |
116 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/structimage__int__s.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: image_int_s struct Reference
4 |
5 |
6 |
7 |
8 | image_int_s Struct Reference #include <lsd.h >
9 |
10 |
Detailed Description
11 | int image data type
12 |
13 | The pixel value at (x,y) is accessed by:
14 | image->data[ x + y * image->xsize ]
15 | with x and y integer.
16 |
17 |
18 |
19 | Definition at line 100 of file lsd.h .
20 |
21 | Data Fields
22 | int * data
23 |
24 | unsigned int xsize
25 |
26 | unsigned int ysize
27 |
28 |
29 | Field Documentation
30 |
31 |
32 |
33 |
34 |
38 |
39 |
40 |
41 |
56 |
57 |
58 |
59 |
60 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 | Definition at line 103 of file lsd.h .
78 |
79 | Referenced by new_image_int() .
80 |
81 |
82 |
83 |
84 |
85 |
86 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 | Definition at line 103 of file lsd.h .
104 |
105 | Referenced by new_image_int() .
106 |
107 |
108 | The documentation for this struct was generated from the following file:
110 | Generated on Fri Dec 3 10:18:49 2010 for LSD by
111 |
112 |
113 | 1.3.4
114 |
115 |
116 |
--------------------------------------------------------------------------------
/thirdparty/LSD/doc/structpoint.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | LSD: point struct Reference
4 |
5 |
6 |
7 |
8 | point Struct Reference Detailed Description
9 | A point (or pixel).
10 |
11 |
12 |
13 | Definition at line 123 of file lsd.c .
14 |
15 | Data Fields
16 | int x
17 |
18 | int y
19 |
20 |
21 | Field Documentation
22 |
23 |
24 |
25 |
26 |
30 |
31 |
32 |
33 |
48 |
49 |
50 |
51 |
52 |
56 |
57 |
58 |
59 |
74 | The documentation for this struct was generated from the following file:
76 | Generated on Fri Dec 3 10:18:49 2010 for LSD by
77 |
78 |
79 | 1.3.4
80 |
81 |
82 |
--------------------------------------------------------------------------------
/thirdparty/LSD/lsd_call_example.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include "lsd.h"
3 |
4 | int main(void)
5 | {
6 | image_double image;
7 | ntuple_list out;
8 | unsigned int x,y,i,j;
9 | unsigned int X = 128; /* x image size */
10 | unsigned int Y = 128; /* y image size */
11 |
12 | /* create a simple image: left half black, right half gray */
13 | image = new_image_double(X,Y);
14 | for(x=0;xdata[ x + y * image->xsize ] = xsize);
23 | for(i=0;isize;i++)
24 | {
25 | for(j=0;jdim;j++)
26 | printf("%f ",out->values[ i * out->dim + j ]);
27 | printf("\n");
28 | }
29 |
30 | /* free memory */
31 | free_image_double(image);
32 | free_ntuple_list(out);
33 |
34 | return 0;
35 | }
36 |
--------------------------------------------------------------------------------
/thirdparty/LSWMS/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | ##############################
2 | PROJECT( lineSegment )
3 | ##############################
4 | cmake_minimum_required (VERSION 2.6)
5 |
6 | # Packages
7 | find_package( OpenCV REQUIRED )
8 |
9 |
10 | # Includes
11 | include_directories(
12 | ${OPENCV_INCLUDE_DIR}
13 | ${PROJECT_BINARY_DIR}
14 | )
15 |
16 | set(SOURCE_FILES
17 | main.cpp
18 | LSWMS.cpp
19 | LSWMS.h
20 | )
21 |
22 |
23 | # Add executable and target link libraries
24 | ADD_EXECUTABLE( lineSegment ${SOURCE_FILES})
25 | TARGET_LINK_LIBRARIES( lineSegment ${OpenCV_LIBS})
26 |
27 |
28 |
--------------------------------------------------------------------------------
/thirdparty/LSWMS/LSWMS.h:
--------------------------------------------------------------------------------
1 | #ifndef __LSWMS_H__
2 | #define __LSWMS_H__
3 |
4 | enum {RET_OK, RET_ERROR};
5 |
6 | #include "opencv2/core/core.hpp"
7 | #include "opencv2/highgui/highgui.hpp"
8 | #include "opencv2/imgproc/imgproc.hpp"
9 |
10 | #include "float.h"
11 |
12 | #define PI_2 CV_PI/2
13 |
14 | typedef std::vector LSEG;
15 | typedef struct _DIR_POINT
16 | {
17 | cv::Point pt;
18 | float vx;
19 | float vy;
20 |
21 | _DIR_POINT(cv::Point _pt, float _vx, float _vy)
22 | {
23 | pt = _pt;
24 | vx = _vx;
25 | vy = _vy;
26 | };
27 | _DIR_POINT()
28 | {
29 | pt = cv::Point(0,0);
30 | vx = 0;
31 | vy = 0;
32 | }
33 | }DIR_POINT;
34 |
35 | class LSWMS
36 | {
37 |
38 | private:
39 | //Verbose
40 | bool __verbose;
41 |
42 | // Sizes
43 | cv::Size __imSize, __imPadSize;
44 | int __imWidth, __imHeight;
45 |
46 | // Window parameters
47 | int __R, __N;
48 |
49 | // Line Segments
50 | LSEG __lSeg;
51 | int __numMaxLSegs;
52 |
53 | // Images and maps
54 | cv::Mat __img, __imgPad;
55 | cv::Rect __roiRect;
56 | cv::Mat __imgPadROI;
57 | cv::Mat __G, __Gx, __Gy; // Map of probability of line segments
58 | cv::Mat __M; // Map of visited pixels
59 | cv::Mat __A; // Map of angles
60 |
61 | cv::Mat __imAux; // For debugging
62 |
63 | // Thresholds and variables
64 | int __meanG;
65 | std::vector __sampleIterator;
66 | float __margin;
67 |
68 | // Mean-Shift central
69 | std::vector __seeds;
70 |
71 | // Functions
72 | void setPaddingToZero(cv::Mat &img, int NN);
73 | void updateMask(cv::Point pt1, cv::Point pt2);
74 |
75 | // SOBEL-specific functions
76 | int computeGradientMaps(const cv::Mat &img, cv::Mat &G, cv::Mat &Gx, cv::Mat &Gy);
77 |
78 | // General functions
79 | int findLineSegments(const cv::Mat &G, const cv::Mat &Gx, const cv::Mat &Gy, cv::Mat &A, cv::Mat &M, std::vector &lSegs, std::vector &errors);
80 | int lineSegmentGeneration(const DIR_POINT &dpOrig, LSEG &lSeg, float &error);
81 |
82 | // Growing and Mean-Shift
83 | float grow(const DIR_POINT &dpOrig, cv::Point &ptDst, int dir);
84 | int weightedMeanShift(const DIR_POINT &dpOrig, DIR_POINT &dpDst, const cv::Mat &M=cv::Mat());
85 |
86 | public:
87 | LSWMS(const cv::Size imSize, const int R, const int numMaxLSegs=0, bool verbose=false);
88 | int run(const cv::Mat &img, std::vector &lSegs, std::vector &errors);
89 | void drawLSegs(cv::Mat &img, std::vector &lSegs, cv::Scalar color=CV_RGB(255,0,0), int thickness=1);
90 | void drawLSegs(cv::Mat &img, std::vector &lSegs, std::vector &errors, int thickness=1);
91 |
92 | };
93 |
94 | #endif // __LSWMS_H__
95 |
--------------------------------------------------------------------------------
/thirdparty/LSWMS/PAA09_MNietoCCuevasLSalgadoNGarcia_v6.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSWMS/PAA09_MNietoCCuevasLSalgadoNGarcia_v6.0.pdf
--------------------------------------------------------------------------------
/thirdparty/LSWMS/facade.avi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSWMS/facade.avi
--------------------------------------------------------------------------------
/thirdparty/LSWMS/image110.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSWMS/image110.jpg
--------------------------------------------------------------------------------
/thirdparty/LSWMS/image205.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSWMS/image205.jpg
--------------------------------------------------------------------------------
/thirdparty/LSWMS/image87.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSWMS/image87.jpg
--------------------------------------------------------------------------------
/thirdparty/LSWMS/image9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/LSWMS/image9.jpg
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/Almazan_MCMLSD_A_Dynamic_CVPR_2017_paper.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/Almazan_MCMLSD_A_Dynamic_CVPR_2017_paper.pdf
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/.DS_Store
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/Evaluation Code.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/Evaluation Code.zip
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/Imgs/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/Imgs/.DS_Store
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/Imgs/P1040779.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/Imgs/P1040779.JPG
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/Imgs/P1040812hr.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/Imgs/P1040812hr.JPG
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/Imgs/P1040823.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/Imgs/P1040823.jpg
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/Imgs/P1040823hr.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/Imgs/P1040823hr.JPG
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/Readme.txt:
--------------------------------------------------------------------------------
1 | many function in the line segmentation algorithm were mex file, if you are using
2 | windows or linux system, please recompile following c code into mex file.
3 | mexRemoveVotes_v3_scale.c
4 | mexVoteEdges_v3_scale.c
5 | the c code can be compiled by command
6 | mex xxxxxxxxx.c
7 |
8 | Please use matlab coder to compile following .m file into mex file:
9 | hmmParameters.m
10 | returnLines.m
11 | sampleLine.m
12 | the matlab coder is an app in matlab to automatically compile .m code into mex file,
13 | The entry point for the code is demo_start_v2.m. The instruction is in following
14 | select No for "Does this code use global variables?"
15 |
16 | The input variable type should be configurated in following
17 | sampleLine.m
18 | rho double(1x1)
19 | theta double(1x1)
20 | m double(1x1)
21 | n double(1x1)
22 | pp double(1x2)
23 |
24 | returnLines.m
25 | points_proj double(:infx2)
26 | final_labels double(1x:inf)
27 |
28 | hmmParameters.m
29 | exist_edge_on double(1x40)
30 | exist_edge_off double(1x40)
31 | ang_dev_on double(1x181)
32 | ang_dev_off double(1x181)
33 | node_idx double(:infx1)
34 | Psi_t double(2x2)
35 | pi_var double(2x1)
36 | y_h double(:infx1)
37 | distances double(:infx1)
38 | range_dis double(1x40)
39 | nexist_edge_on double(1x40)
40 | nexist_edge_off double(1x40)
41 | prob_on double(1x1)
42 | prob_off double(1x1)
43 | prob_stay_on double(1x1)
44 | prob_leave_off double(1x1)
45 | prob_leave_on double(1x1)
46 | prob_stay_off double(1x1)
47 | ang_dev double(:infx1)
48 | range_ang double(1x181)
49 |
50 | 4. Select MEX as output format also remove the _mex ending in the output file name section
51 | for example if you are compiling sampleLine.m, output the file name as sampleLine instead of sampleLine_mex
52 |
53 | the line segment detector has two steps
54 | 1. compute the kernel for the image size
55 | you only need to compute the kernal once for one an image size
56 | [kernels, kernels_flip, kernel_params] =kernelInitialization(img);
57 | the kernels, kernels_flip, kernel_params are the kernel parameter for the line segment algorithm below
58 | 2. line segment detection
59 | [lines, fullLines] =lineSegmentation_HighRes(img,kernels, kernels_flip, kernel_params);
60 | the lines variable contains the detected line segmentations it arranged as
61 | [x1 y1 x2 y2 probability]
62 | The fullLines are the detected lines. It is arranged as [rho theta probability]
63 |
64 | please run the demo_start_v2.m for demonstration
65 |
66 | the code in Evaluation Code.zip are line evaluation algorithms
67 | run_create_contours_MCMLSD.m is the algorithm to get line segment statistics for
68 | MCMLSD, you can modify it to process other line segment detection algorithms
69 |
70 | run_eval_PR_4Methods.m and run_eval_PR.m process the statistical information from
71 | the run_create_contours_MCMLSD.m result and perform evaluations
72 |
73 | run_plot_PR.m and run_plot_PR4Methods.m plot the results in a graph
74 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/.DS_Store
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/checkInParam.m:
--------------------------------------------------------------------------------
1 | function [out] = checkInput(img1,g1_mag1,g1_dir1,g1_sc1,g2_mag1,g2_sc1,g2_all1,noise1,...
2 | EDGE_W1,subpixelflag1,maxscale1)
3 |
4 | load('input.mat');
5 | out = 0;
6 | if ~isequal(img1, img)
7 | display('error img');
8 | out = out + 1;
9 | end
10 | if ~isequal(g1_mag1, g1_mag)
11 | display('error g1_mag');
12 | out = out + 1;
13 | end
14 | if ~isequal(g1_dir1, g1_dir)
15 | display('error g1_dir');
16 | out = out + 1;
17 | end
18 | if ~isequal(g1_sc1, g1_sc)
19 | display('error g1_sc');
20 | out = out + 1;
21 | end
22 | if ~isequal(g2_mag1, g2_mag)
23 | display('error g2_mag');
24 | out = out + 1;
25 | end
26 | if ~isequal(g2_sc1, g2_sc)
27 | display('error g2_sc');
28 | out = out + 1;
29 | end
30 | if ~isequal(g2_all1, g2_all)
31 | display('error g2_all');
32 | out = out + 1;
33 | end
34 | if noise1 ~= noise
35 | display('error noise');
36 | out = out + 1;
37 | end
38 | if EDGE_W1 ~= edgew
39 | display('error EDGE_W');
40 | out = out + 1;
41 | end
42 | if subpixelflag1 ~= subpixelflag
43 | display('error subpixelflag');
44 | out = out + 1;
45 | end
46 | if maxscale1 ~= scale
47 | display('error scale');
48 | out = out + 1;
49 | end
50 |
51 | end
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/checkOutParam.m:
--------------------------------------------------------------------------------
1 | function [out] = checkOutParam(edge_map1,blur_map1,dark_map1,light_map1,...
2 | xzero1_map1,yzero1_map1,xzero2_map1,yzero2_map1)
3 |
4 | load('output.mat');
5 | out = 0;
6 | if ~isequal(edge_map1, edge_map)
7 | display('error edge_map');
8 | out = out + 1;
9 | end
10 | if ~isequal(blur_map1, blur_map)
11 | display('error blur_map');
12 | out = out + 1;
13 | end
14 | if ~isequal(dark_map1, dark_map)
15 | display('error dark_map');
16 | out = out + 1;
17 | end
18 | if ~isequal(light_map1, light_map)
19 | display('error light_map');
20 | out = out + 1;
21 | end
22 | if ~isequal(xzero1_map1, xzero1_map)
23 | display('error xzero1_map');
24 | out = out + 1;
25 | end
26 | if ~isequal(yzero1_map1, yzero1_map)
27 | display('error yzero1_map');
28 | out = out + 1;
29 | end
30 | if ~isequal(xzero2_map1, xzero2_map)
31 | display('error xzero2_map');
32 | out = out + 1;
33 | end
34 | if ~isequal(yzero2_map1, yzero2_map)
35 | display('error yzero2_map');
36 | out = out + 1;
37 | end
38 |
39 | end
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/check_save_requirements.m:
--------------------------------------------------------------------------------
1 | function[sfilenames] = check_save_requirements(save_flags,outputdir,etype);
2 |
3 | name1 = ['edge',etype];
4 | sfilenames = {name1,'blur.mat','dark.mat','light.mat',...
5 | 'g1mag.mat','g1dir.mat','g1scale.mat','g2mag.mat','g2scale.mat',...
6 | 'xzero1.mat','yzero1.mat','xzero2.mat','yzero2.mat'};
7 |
8 | if any(save_flags)
9 |
10 | % Output directory does not exist:
11 | if ((exist(outputdir) ~= 7) & (length(outputdir) ~= 0))
12 | mkdir(outputdir); % Create this directory
13 | mess1 = 'Requested output directory has been created.';
14 | uiwait(msgbox(mess1,'Output Directory Creation','none','modal'));
15 | end;
16 |
17 | if (length(outputdir) == 0)
18 | outputdir = 'tmp_output';
19 | opmessage = ['Output directory name not specified. ',...
20 | 'Files will be saved in directory "tmp_output".'];
21 | uiwait(msgbox(opmessage,'Output Directory Warning','warn','modal'));
22 | if (exist(outputdir) ~= 7)
23 | mkdir(outputdir);
24 | end;
25 | end;
26 |
27 | filestosave = sfilenames(find(save_flags));
28 |
29 | x = dir(outputdir);
30 | xx = {x.name}';
31 | commonfiles = intersect(filestosave,xx);
32 |
33 | if ~isempty(commonfiles)
34 | maxnumx = 0;
35 | for k = 1:1:length(xx)
36 | y = xx{k};
37 | numx = 0;
38 | if (length(y)>4)
39 | if (y(end-4)=='x')
40 | numx = sum(y=='x');
41 | end;
42 | end;
43 | if (numx > maxnumx)
44 | maxnumx = numx;
45 | end;
46 | end;
47 | assignin('base','maxnumx',maxnumx+1);
48 | assignin('base','commonfiles',commonfiles);
49 |
50 | % uiwait(outputdir_erase_info); % Call GUI
51 | %
52 | % changename_flag = evalin('base','changename_flag;');
53 | %
54 | % if changename_flag
55 | % repx = repmat('x',1,maxnumx+1);
56 | % for k = 1:1:length(sfilenames)
57 | % s = sfilenames{k};
58 | % s = [s(1:end-4),repx,s(end-3:end)];
59 | % sfilenames{k} = s;
60 | % end;
61 | % end;
62 |
63 | evalin('base','clear changename_flag maxnumx commonfiles;');
64 | end;
65 | end;
66 |
67 | for k = 1:1:length(sfilenames)
68 | s = sfilenames{k};
69 | s = [outputdir,'/',s];
70 | sfilenames{k} = s;
71 | end;
72 |
73 | return;
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/convolve_2.m:
--------------------------------------------------------------------------------
1 |
2 | %##############################################################
3 | %
4 | % [cimg] = convolve_2(mimg,filt,bc)
5 | %
6 | % Convolution of two matrices with the boundaries handled
7 | % depending on the value of the boundary condition variable.
8 | % - 0 for extension convolution
9 | % - 1 for no overlap convolution
10 | %
11 | %##############################################################
12 |
13 | function[cimg] = convolve_2(mimg,filt,bc)
14 |
15 | if (bc == 0)
16 |
17 | pad_img = pad_matrix(mimg,size(filt));
18 | cimg = conv2(pad_img,filt,'same');
19 | cimg = trim_matrix(cimg,size(filt));
20 |
21 | else
22 |
23 | cimg = conv2(mimg,filt,'same');
24 |
25 | if (size(filt,1) < size(filt,2))
26 | k = floor(0.5*length(filt));
27 | cimg(:,1:k) = 0;
28 | cimg(:,end-k+1:end) = 0;
29 | else
30 | k = floor(0.5*length(filt));
31 | cimg(1:k,:) = 0;
32 | cimg(end-k+1:end,:) = 0;
33 | end;
34 |
35 | end;
36 |
37 | return;
38 |
39 |
40 | %########################
41 | % Function to pad matrix:
42 | %########################
43 | function[r] = pad_matrix(m,d)
44 |
45 | if (d(1) < d(2))
46 | k = floor(0.5*d(2));
47 | ad1 = repmat(m(:,1),1,k);
48 | ad2 = repmat(m(:,end),1,k);
49 | r = [ad1 m ad2];
50 | else
51 | k = floor(0.5*d(1));
52 | ad1 = repmat(m(1,:),k,1);
53 | ad2 = repmat(m(end,:),k,1);
54 | r = [ad1; m; ad2];
55 | end;
56 |
57 | return;
58 |
59 |
60 | %#########################
61 | % Function to trim matrix:
62 | %#########################
63 | function[r] = trim_matrix(m,d)
64 |
65 | if (d(1) < d(2))
66 | k = floor(0.5*d(2));
67 | r = m(:,k+1:end-k);
68 | else
69 | k = floor(0.5*d(1));
70 | r = m(k+1:end-k,:);
71 | end;
72 |
73 | return;
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/d2gauss.m:
--------------------------------------------------------------------------------
1 | %################################################################
2 | %
3 | % d2gauss.m returns a 2-d Gaussian filter with kernal attributes:
4 | % size: n1*n2
5 | % theta: CCW-angle tkernat filter rotated
6 | % sigma1: standard deviation of 1st gaussian
7 | % sigma2: standard deviation of 2nd gaussian
8 | %
9 | %################################################################
10 |
11 | function[kern] = d2gauss(n1,std1,n2,std2,theta,max1);
12 |
13 | [I,J] = meshgrid(1:1:n2,1:1:n1);
14 | It = I - (n2+1)/2;
15 | Jt = J - (n1+1)/2;
16 |
17 | u1 = cos(theta)*Jt' - sin(theta)*It';
18 | u2 = sin(theta)*Jt' + cos(theta)*It';
19 |
20 | kern = gauss(u1,std1) .* gauss(u2,std2);
21 |
22 | %############################################
23 | % Normalise the kernal and confine to limits:
24 | %############################################
25 | kern = kern / sqrt(sum(sum(kern.*kern)));
26 | max2 = max(max(kern));
27 | kern = kern / (max2/max1);
28 |
29 | return;
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/derivative2nd.m:
--------------------------------------------------------------------------------
1 | %############################################################
2 | %
3 | % derivative2nd(g1dir,maxscale,noise,gauss_a,conv_type,fpath)
4 | %
5 | %############################################################
6 |
7 | function[g2mag,g2sc,g2all] = derivative2nd(g1dir,maxscale,noise,...
8 | gauss_a,conv_type);
9 |
10 | fm2 = '.ascii';
11 |
12 | %############
13 | % Initialise:
14 | %############
15 | g2mag = 0;
16 | g2sc = 0;
17 | nrows = size(g1dir,1);
18 | g2all = zeros(maxscale*nrows,size(g1dir,2));
19 |
20 | for scale = 1:1:maxscale
21 |
22 | %#############################
23 | % Set scale value for filters:
24 | %#############################
25 | if (scale == 1)
26 | g2scaleval = '05';
27 | else
28 | g2scaleval = '1';
29 | end;
30 |
31 | mimg = gauss_a(:,:,scale);
32 |
33 | %kern1 = load(strcat(fpath,filesep,'gx',g2scaleval,fm2));
34 | kern1 = load(strcat('gx',g2scaleval,fm2));
35 | rc1 = convolve_2(mimg,kern1,conv_type);
36 | %kern2 = load(strcat(fpath,filesep,'g2y',g2scaleval,fm2));
37 | kern2 = load(strcat('g2y',g2scaleval,fm2));
38 | rc2 = convolve_2(rc1,kern2,conv_type);
39 |
40 | %kern3 = load(strcat(fpath,filesep,'gy',g2scaleval,fm2));
41 | kern3 = load(strcat('gy',g2scaleval,fm2));
42 | rc3 = convolve_2(mimg,kern3,conv_type);
43 | %kern4 = load(strcat(fpath,filesep,'g2x',g2scaleval,fm2));
44 | kern4 = load(strcat('g2x',g2scaleval,fm2));
45 | rc4 = convolve_2(rc3,kern4,conv_type);
46 |
47 | %kern5 = load(strcat(fpath,filesep,'g1x',g2scaleval,fm2));
48 | kern5 = load(strcat('g1x',g2scaleval,fm2));
49 | rc5 = convolve_2(mimg,kern5,conv_type);
50 | %kern6 = load(strcat(fpath,filesep,'g1y',g2scaleval,fm2));
51 | kern6 = load(strcat('g1y',g2scaleval,fm2));
52 | rc6 = convolve_2(rc5,kern6,conv_type);
53 |
54 | %#######################################
55 | % Calculate the 2nd Gaussian derivative:
56 | %#######################################
57 | g2 = g2steer(rc4,rc2,rc6,g1dir);
58 |
59 | g2all((scale-1)*nrows+1:scale*nrows,:) = g2; % For subpixel loc'n.
60 |
61 | %##############################################################
62 | % Augment multi-scale Gaussian directional 2nd derivative maps:
63 | %##############################################################
64 | [g2mag,g2sc] = g2scale(g2mag,g2,g2sc,scale,noise,0);
65 |
66 | end;
67 |
68 | return;
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/elderEdge.m:
--------------------------------------------------------------------------------
1 | function [edgeStruct] = elderEdge()
2 | %Run local scale control edge detector on image (Elder & Zucker, 1998)
3 |
4 | noise = 1; %estimated SD of pixel noise
5 | imagefile='P1020177.jpg'; %name of image file. Most formats are handled. May be RGB or grayscale.
6 | maxscale=5; %maximum scale, must be positive integer. Scales increase exponentially from 0.5 to 2^{maxscale-2}.
7 | edgew=10; %maximum edge blur (distance in pixels between extrema in the 2nd derivative)
8 | conss=1; %boundary condition for scalespace computation. 0 for extension, 1 for no overlap
9 | congrd=0; %boundary condition for derivative computation. 0 for extension, 1 for no overlap
10 | subpixelflag=0; %generate subpixel-localized edges
11 | %run edge detection
12 | edgeStruct = main_edge(imagefile,maxscale,noise,edgew,conss,congrd,subpixelflag);
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/elderEdge.m~:
--------------------------------------------------------------------------------
1 | function elderEdge()
2 | %Run local scale control edge detector on image (Elder & Zucker, 1998)
3 | noise = 1; %estimated SD of pixel noise
4 | imagefile='img.jpg'; %name of image file
5 | maxscale=5; %maximum scale, must be positive integer. Scales increase exponentially from 0.5 to 2^{maxscale-2}.
6 | edgew=10; %maximum edge blur (distance in pixels between extrema in the 2nd derivative)
7 | conss=1; %boundary condition for scalespace computation. 0 for extension, 1 for no overlap
8 | congrd=0; %boundary condition for derivative computation. 0 for extension, 1 for no overlap
9 | save_v = zeros(0,11); %results to save
10 | view_v = zeros(0,11); %results to view
11 |
12 | save_v(1) = 1; %edge map
13 | save_v(2) = 1; %blur map
14 | save_v(3) = 1; %dark map
15 | save_v(4) = 1; %light map
16 | save_v(5) = 0; %gradient magnitude map
17 | save_v(6) = 1; %gradient direction map
18 | save_v(7) = 0; %gradient scale map
19 | save_v(8) = 0; %2nd derivative map
20 | save_v(9) = 0; %2nd derivativ scale map
21 | save_v(10) = 0; %X zero crossing offset
22 | save_v(11) = 0;%Y zero crossing offset
23 |
24 | view_v(1) = 0; %edge map
25 | view_v(2) = 0; %blur map
26 | view_v(3) = 0; %dark map
27 | view_v(4) = 0; %light map
28 | view_v(5) = 0; %gradient magnitude map
29 | view_v(6) = 0; %gradient direction map
30 | view_v(7) = 0; %gradient scale map
31 | view_v(8) = 0; %2nd derivative map
32 | view_v(9) = 0; %2nd derivativ scale map
33 | view_v(10) = 0; %X zero crossing offset
34 | view_v(11) = 0;%Y zero crossing offset
35 |
36 | %change this path to your own local directory for the filters
37 | filtpath='~/Dropbox/code/elderlab/edge/mar03/filters';
38 |
39 | edgetype='.jpg'; %format for output edge map (.mat also allowed)
40 | edgelplotflag=0; %show edges on image
41 | imgplotflag=0; %view original image
42 | outputdir=pwd;
43 |
44 | sfilenames = check_save_requirements(view_v,outputdir,edgetype);
45 | subpixelflag=0;
46 |
47 | outputdata=main_edge(imagefile,maxscale,noise,edgew,...
48 | conss,congrd,view_v,view_v,filtpath,...
49 | edgetype,edgelplotflag,imgplotflag,sfilenames,...
50 | subpixelflag);
51 |
52 | reblur=uint8(imreconandblur(1,3));
53 |
54 | img=imread(imagefile);
55 | if size(img,3)==3
56 | img=rgb2gray(img);
57 | end
58 | imwrite(img,strcat(resultdir,'img.jpg'));
59 | imwrite(outputdata.edge_map,strcat(resultdir,'edge.jpg'));
60 | imwrite(reblur,strcat(resultdir,'recon.jpg'));
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/find_edges.mexa64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/find_edges.mexa64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/find_edges.mexmaci64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/find_edges.mexmaci64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/find_edges.mexw64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/find_edges.mexw64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/g1scale.m:
--------------------------------------------------------------------------------
1 | %###########################################################################
2 | %
3 | % g1scale(g1mag1,g1dir1,g1mag2,g1dir2,g1scale1,scale,noise,b_est)
4 | %
5 | % Purpose: Augments multi-scale Gaussian Gradient maps with significant
6 | % estimates at a new scale. Pixels for which the magnitude
7 | % of the Gaussian gradient is under threshold in the multi-scale
8 | % map (gradient magnitude input 1) but over threshold
9 | % at the new scale (gradient magnitude input 2) are updated
10 | % with the gradient magnitude, direction and scale value of
11 | % the new scale.
12 | %
13 | % Input: g1mag1 - Multi-scale Gaussian gradient magnitude image
14 | % g1dir1 - Multi-scale Gaussian gradient direction image
15 | % g1mag2 - Gaussian gradient magnitude image at new scale
16 | % g1dir2 - Gaussian gradient direction image at new scale
17 | % g1scale1 - Multi-scale scale map
18 | % g1scale2 - Scale of new gradient estimates
19 | % noise - Estimated sensor noise
20 | % b_est - Derivatives near boundary estimated by reflecting
21 | % intensity function.
22 | % Output: g1mag1 - Integrated multi-scale gradient magnitude map
23 | % g1dir1 - Integrated multi-scale gradient direction map
24 | % g1scale1 - Integrated multi-scale scale map
25 | %
26 | %###########################################################################
27 |
28 | function[g1mag1,g1dir1,g1sc1] = g1scale(g1mag1,g1dir1,g1mag2,g1dir2,g1sc1,...
29 | scale,noise,b_est)
30 |
31 |
32 | norms12 = [0.765, 0.199, 0.0499, 0.0125, 0.00312, 0.00078];
33 | thresh = 5.6 * noise * norms12(scale);
34 |
35 | if ((scale<3) | b_est)
36 | krad = 1;
37 | else
38 | krad = ceil(4.6*sqrt(pow2(2*(scale-2))-1));
39 | end
40 |
41 |
42 | if (scale == 1)
43 |
44 | g1mag1 = zeros(size(g1mag2));
45 | g1dir1 = 4 * ones(size(g1mag2));
46 | g1sc1 = zeros(size(g1mag2));
47 |
48 | f = find(g1mag2 >= thresh);
49 | g1mag1(f) = g1mag2(f);
50 | g1dir1(f) = g1dir2(f);
51 | g1sc1(f) = scale;
52 |
53 | else
54 | sz = size(g1mag2);
55 |
56 | [i,j] = meshgrid(krad+1:1:sz(1)-krad,krad+1:1:sz(2)-krad);
57 | itrans = i';
58 | jtrans = j';
59 | if ~(isempty(itrans) | isempty(jtrans))
60 | K = sub2ind(size(g1mag2),itrans(:),jtrans(:));
61 |
62 | smat = g1sc1(krad+1:end-krad,krad+1:end-krad);
63 | mmat = g1mag2(krad+1:end-krad,krad+1:end-krad);
64 |
65 | f = find((smat==0) & (mmat>=thresh));
66 |
67 | g1mag1(K(f)) = g1mag2(K(f));
68 | g1dir1(K(f)) = g1dir2(K(f));
69 | g1sc1(K(f)) = scale;
70 | end;
71 | end;
72 |
73 | return;
74 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/g1steer.m:
--------------------------------------------------------------------------------
1 |
2 | %######################################################################
3 | %
4 | % g1steer - Computes magnitude and direction of the gradient of the
5 | % luminance function based on x and y basis functions for 1st Gaussian
6 | % derivative.
7 | %
8 | %
9 | % Input: g1x - X basis for Gaussian gradient
10 | % g1y - Y basis for Gaussian gradient
11 | % Output: g1mag - Gradient Magnitude Estimate
12 | % g1dir - Gradient Direction Estimate
13 | %
14 | %######################################################################
15 |
16 |
17 | function[g1mag,g1dir] = g1steer(g1x,g1y)
18 |
19 | g1mag = zeros(size(g1x));
20 | g1dir = 4 * ones(size(g1x));
21 |
22 | f = find((g1x ~= 0) & (g1y ~= 0));
23 |
24 | g1dir(f) = atan2(-g1y(f),g1x(f));
25 | g1mag(f) = sqrt(g1y(f).^2 + g1x(f).^2);
26 |
27 | return;
28 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/g2scale.m:
--------------------------------------------------------------------------------
1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 | %
3 | % g2scale - Augments multi-scale Gaussian directional 2nd derivative maps
4 | % with significant estimates at a new scale. Pixels for which the magnitude
5 | % of the 2nd derivative is under threshold in the multi-scale map
6 | % (2nd derivative input 1) but over threshold at the new scale (2nd derivative
7 | % input 2) are updated with the 2nd derivative magnitude and scale value of the
8 | % new scale.
9 | %
10 | % Input: g2mag1 - Multi-scale Gaussian directional 2nd derivative image
11 | % g2mag2 - Gaussian directional 2nd derivative image at new scale
12 | % g1scale1 - Multi-scale scale map
13 | % noise - Estimated sensor noise
14 | % b_est - Estimate derivatives near boundaries?
15 | %
16 | % Output: g2mag - Integrated multi-scale directional 2nd derivative map
17 | % g2scale - Integrated multi-scale 2nd derivative scale map
18 | %
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 |
21 | function[g2mag1,g2sc1] = g2scale(g2mag1,g2mag2,g2sc1,scale,noise,b_est)
22 |
23 | norms12 = [1.873 0.2443 0.0306 0.003817 0.00047715 0.0000596 0.000007455];
24 | thresh = 5.2 * noise * norms12(scale);
25 |
26 | if ((scale<3) | b_est)
27 | krad = 1;
28 | else
29 | krad = ceil(4.6*sqrt(pow2(2*(scale-2))-1.0));
30 | end;
31 |
32 | if (scale == 1)
33 |
34 | g2mag1 = zeros(size(g2mag2));
35 | g2sc1 = zeros(size(g2mag2));
36 |
37 | f = find(abs(g2mag2) >= thresh);
38 | g2sc1(f) = scale;
39 | g2mag1(f) = g2mag2(f);
40 |
41 | else
42 |
43 | sz = size(g2mag1);
44 |
45 | [i,j] = meshgrid(krad+1:sz(1)-krad,krad+1:sz(2)-krad);
46 | itrans = i';
47 | jtrans = j';
48 | if ~(isempty(itrans) | isempty(jtrans))
49 |
50 | K = sub2ind(size(g2mag1),itrans(:),jtrans(:));
51 |
52 | magmat1 = g2mag1(krad+1:end-krad,krad+1:end-krad);
53 | magmat2 = g2mag2(krad+1:end-krad,krad+1:end-krad);
54 | f = find(abs(magmat1) == 0 & abs(magmat2) >= thresh);
55 |
56 | g2mag1(K(f)) = g2mag2(K(f));
57 | g2sc1(K(f)) = scale;
58 | end;
59 | end;
60 |
61 | return;
62 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/g2steer.m:
--------------------------------------------------------------------------------
1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 | %
3 | % g2steer - Computes the second Gaussian derivative of the luminance function
4 | % in specified direction ( normally the Gradient direction). The three input
5 | % basis function are used to steer the derivative. The units of the direction
6 | % map are radians and the range is between -pi and pi. A value of -4 indicate
7 | % that no direction was measurable. The 2nd derivative is taken only for valid
8 | % directions.
9 | %
10 | % Input: g2x - Response map for 1st G2 basis function
11 | % g2y - Response map for 2nd G2 basis function
12 | % g2xy - Response map for 3rd G2 basis function
13 | % g1dir - Luminance gradient direction map
14 | %
15 | % Output: g2 - Second derivative response map
16 | %
17 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18 |
19 | function[g2] = g2steer(g2x,g2y,g2xy,g1dir)
20 |
21 | g2 = zeros(size(g2x));
22 |
23 | f = find((g1dir ~= 4.0) & (g2x ~= 0) & (g2xy ~= 0) & (g2y ~= 0));
24 | cdir = cos(2*g1dir);
25 | sdir = sin(2*g1dir);
26 |
27 | g2(f) = 0.5 * (1 + cdir(f)) .* g2x(f) - sdir(f) .* g2xy(f) + ...
28 | 0.5 * (1 - cdir(f)) .* g2y(f);
29 |
30 | return;
31 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/gauss.m:
--------------------------------------------------------------------------------
1 | % gauss.m: Calculates Gaussian pdf values.
2 |
3 | function[y] = gauss(x,std)
4 |
5 | y = exp(-x.^2/(2*std^2)) / (std*sqrt(2*pi));
6 |
7 | return;
8 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/gradient.m:
--------------------------------------------------------------------------------
1 | %############################################################
2 | %
3 | % gradient(maxscale,noise,gauss_a,conv_type,filtpath)
4 | % Computes non-zero gradient in the luminance function by
5 | %
6 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7 |
8 | function[g1mag,g1dir,g1sc] = gradient(maxscale,noise,gauss_a,...
9 | conv_type)
10 |
11 | fm2 = '.ascii';
12 |
13 | %############
14 | % Initialise:
15 | %############
16 | g1mag = 0;
17 | g1dir = 0;
18 | g1sc = 0;
19 |
20 | for scale = 1:1:maxscale
21 |
22 | % set scale values for filters
23 | if (scale == 1)
24 | g1scaleval = '05';
25 | else
26 | g1scaleval = '1';
27 | end;
28 |
29 | mimg = gauss_a(:,:,scale);
30 |
31 | %#####################################################
32 | % Compute response of first derivative Gaussian filter
33 | % to the blurred image in an arbitrary direction:
34 | %#####################################################
35 | %kern1 = load(strcat(filtpath,'/gy',g1scaleval,fm2));
36 | kern1 = load(strcat('gy',g1scaleval,fm2));
37 | rc1 = convolve_2(mimg,kern1,conv_type);
38 | %kern2 = load(strcat(filtpath,'/g1x',g1scaleval,fm2));
39 | kern2 = load(strcat('g1x',g1scaleval,fm2));
40 | rc2 = convolve_2(rc1,kern2,conv_type); % x basis input
41 |
42 | %kern3 = load(strcat(filtpath,'/gx',g1scaleval,fm2));
43 | kern3 = load(strcat('gx',g1scaleval,fm2));
44 | rc3 = convolve_2(mimg,kern3,conv_type);
45 | %kern4 = load(strcat(filtpath,'/g1y',g1scaleval,fm2));
46 | kern4 = load(strcat('g1y',g1scaleval,fm2));
47 | rc4 = convolve_2(rc3,kern4,conv_type); % y basis input
48 |
49 | %###################################################
50 | % Calculate magnitude and direction of the gradient:
51 | %###################################################
52 | [m2,d2] = g1steer(rc2,rc4);
53 |
54 | omag = g1mag;
55 | odir = g1dir;
56 | osc = g1sc;
57 |
58 | %############################################
59 | % Augment multi-scale Gaussian Gradient maps:
60 | %############################################
61 | [g1mag,g1dir,g1sc] = g1scale(g1mag,g1dir,m2,d2,g1sc,scale,noise,0);
62 |
63 | end;
64 |
65 | return;
66 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/main_edge.m:
--------------------------------------------------------------------------------
1 | %############################################################
2 | %
3 | % main_edge.m: Main function called from edge GUI interface.
4 | %
5 | %############################################################
6 |
7 | function[OutputData] = main_edge(img,scale,noise,edgew,...
8 | conss,congrd,subpixelflag)
9 |
10 | %#############
11 | % Input Image:
12 | %#############
13 | if (size(img,3)~=1)
14 | img = rgb2gray(img);
15 | end;
16 | img=double(img);
17 |
18 |
19 | %########################
20 | % Compose blurred images:
21 | %########################
22 | gauss_imgs = scalespace(img,scale,conss);
23 |
24 | %########################
25 | % Calculate gradient map:
26 | %########################
27 | [g1_mag,g1_dir,g1_sc] = gradient(scale,noise,gauss_imgs,congrd);
28 |
29 | %##############################
30 | % Calculate 2nd derivative map:
31 | %##############################
32 | [g2_mag,g2_sc,g2_all] = derivative2nd(g1_dir,scale,noise,gauss_imgs,congrd);
33 |
34 |
35 | % save input.mat img g1_mag g1_dir g1_sc g2_mag g2_sc g2_all noise edgew subpixelflag scale
36 | %inparTest = checkInParam(img,g1_mag,g1_dir,g1_sc,g2_mag,g2_sc,g2_all,noise,...
37 | % edgew,subpixelflag,scale);
38 | %if inparTest > 0
39 | % display('stop');
40 | %end
41 | %####################
42 | % Calculate edge map:
43 | %####################
44 | clear find_edges
45 | [edge_map,blur_map,dark_map,light_map,xzero1_map,yzero1_map,xzero2_map,yzero2_map] = ...
46 | find_edges(img,g1_mag,g1_dir,g1_sc,g2_mag,g2_sc,g2_all,noise,...
47 | edgew,subpixelflag,scale);
48 | clear find_edges
49 |
50 | % outparTest = checkOutParam(edge_map,blur_map,dark_map,light_map,xzero1_map,yzero1_map,xzero2_map,yzero2_map);
51 | % if outparTest > 0
52 | % display('stop');
53 | % end
54 |
55 | %save output.mat edge_map blur_map dark_map light_map xzero1_map yzero1_map xzero2_map yzero2_map
56 | % Branka's code leaves dark and light as double which need rounding:
57 | dark_map = round(dark_map);
58 | light_map = round(light_map);
59 |
60 |
61 | %#######################
62 | % Output data in struct:
63 | %#######################
64 | % OutputData = struct('edge',edge_map,'dark_map',dark_map,...
65 | % 'light_map',light_map,'blur_map',blur_map,...
66 | % 'g1mag',g1_mag,'g1dir',g1_dir,'g1scale',g1_sc,...
67 | % 'g2mag',g2_mag,'g2scale',g2_sc,...
68 | % 'x1zero',xzero1_map,'y1zero',yzero1_map,...
69 | % 'x2zero',xzero2_map,'y2zero',yzero2_map,...
70 | % 'noise',noise);
71 |
72 | OutputData = struct('edge',edge_map,'blur',blur_map,...
73 | 'dark',dark_map,'light',light_map,...
74 | 'g1mag',g1_mag,'g1dir',g1_dir,'g1scale',g1_sc,...
75 | 'g2mag',g2_mag,'g2scale',g2_sc,'g2_all',g2_all,...
76 | 'noise',noise,'xzero',xzero1_map,'yzero',yzero1_map);
77 |
78 |
79 |
80 | return;
81 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/mat2hough_scale.m:
--------------------------------------------------------------------------------
1 | function [ r, th] = mat2hough_scale(m, n, r_max, r_res, th_res)
2 | % MAT2HOUGH converts matrix coordinates to Hough map values
3 | %
4 | % Inputs:
5 | % r_max: Maximum value r can take
6 | % m: vertical matrix index
7 | % n: horizontal matrix index
8 | %
9 | % Output:
10 | % r: Hough domain r value equivalent to n
11 | % th: Hough domain \theta value equivalent to m
12 | %
13 | % Author:
14 | % Ron Tal
15 | %
16 | % Date:
17 | % February 16, 2009
18 | %
19 | % Description:
20 | % This function converts the coordinates of a matlab matrix
21 | % representing a Hough map, to the equivalent Hough domain
22 | % values
23 | %
24 | th = round2frac((m - 1) * th_res, th_res);
25 | r = round2frac((n - 1) * r_res - r_max, r_res);
26 | end
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/plot_edgelmap.m:
--------------------------------------------------------------------------------
1 |
2 | % Function to plot gradient direction vectors at both pixel
3 | % and subpixel locations:
4 |
5 | function[] = plot_edgelmap(img,edgemap,xzeromap,yzeromap,g1dir,...
6 | newarrcol,leg1,leg2,imtitle);
7 |
8 | [M,N] = size(edgemap);
9 |
10 | [I,J] = find(edgemap==255);
11 | K = find(edgemap==255);
12 |
13 | X = J;
14 | Y = I;
15 |
16 | % Set arrowlength, then define:
17 | % (Uarrow,Varrow) = arrow lengths in (x,y) directions
18 | % (Xarrow,Yarrow) = arrow tail points
19 | arrowlen = 1;
20 | Graddir = g1dir(K) + pi/2;
21 | Uarrow = arrowlen * cos(Graddir);
22 | Varrow = -arrowlen * sin(Graddir);
23 |
24 | Xtp = X - 0.5*Uarrow;
25 | Ytp = Y - 0.5*Varrow;
26 |
27 | Xarrow = xzeromap(K) - 0.5*Uarrow;
28 | Yarrow = yzeromap(K) - 0.5*Varrow;
29 |
30 | figure;
31 | imagesc(img);
32 | axis image;
33 | colormap(gray);
34 | hold on;
35 | p1 = plot(0,0);
36 | set(p1,'Color',[0 0 1]);
37 | set(p1,'Visible','off');
38 | p2 = plot(0,0);
39 | set(p2,'Color',newarrcol);
40 | set(p2,'Visible','off');
41 | %q1 = quiver(Xtp,Ytp,Uarrow,Varrow,0); JE Jul08 - suppress pixel-localized
42 | %edges
43 | q2 = quiver(Xarrow,Yarrow,Uarrow,Varrow,0); %
44 | %set(q1,'Color',[0 0 1]);
45 | set(q2,'Color',newarrcol);
46 | L = legend([p1,p2],leg1,leg2,-1);
47 | set(L,'Fontsize',8);
48 | twords = ['Edgels for Image ',imtitle];
49 | tt = title(twords);
50 | set(tt,'Interpreter','none');
51 | hold off;
52 |
53 | return;
54 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/round2frac.m:
--------------------------------------------------------------------------------
1 | %% round2frac() Rounds the input data to the nearest fraction
2 | %
3 | % Description:
4 | %
5 | % Takes 'data' a matrix of floats and rounds it to the nearest 'frac'
6 | %
7 | % Author:
8 | %
9 | % Ron Tal
10 | %
11 | % Date Created:
12 | %
13 | % November 4, 2008
14 | %
15 | function [round_data] = round2frac(data, frac)
16 | % if frac > 1, error('Fraction must be smaller than 1'); end
17 | round_data = data.*(1/frac);
18 | round_data = round(round_data);
19 | round_data = round_data.*frac;
20 | end
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/run_elderEdge.m:
--------------------------------------------------------------------------------
1 | clc
2 | clear
3 | close all
4 | for i = 1:9
5 | clear mex
6 | edgeStruct = elderEdge();
7 |
8 | figure;
9 | imshow(edgeStruct.edge_map);
10 | i
11 | length(find(edgeStruct.edge_map))
12 | diffs{i} = edgeStruct.edge_map;
13 | end
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/scalespace.m:
--------------------------------------------------------------------------------
1 | %################################################################
2 | %
3 | % r = scalescape(mimg,maxscale,conv_type)
4 | %
5 | % Create a series of Gaussian blurred images according to a
6 | % given maximum scale.
7 | %
8 | % Input: mimg: image for convolution w/ Gaussian filter
9 | % maxscale: maximum scale value
10 | % conv_type: convolution type flag
11 | %
12 | % Output: blurred_imgs: maxscale blurred images
13 | %
14 | %################################################################
15 |
16 | function[blurred_imgs] = scalespace(mimg,maxscale,conv_type)
17 |
18 | for scale = 1:1:maxscale
19 |
20 | if (scale < 3)
21 | % Image is unblurred:
22 | blurred_imgs(:,:,scale) = mimg;
23 |
24 | else
25 | % Set values for generating Gaussian filter at given scale:
26 | [stdd,sizz] = setvalues(scale);
27 | kern = d2gauss(sizz,stdd,1,1,0,1/(stdd*sqrt(2*pi)));
28 |
29 | c1mimg = convolve_2(mimg,kern,conv_type);
30 | cres = convolve_2(c1mimg,rot90(kern,3),conv_type);
31 |
32 | blurred_imgs(:,:,scale) = cres;
33 |
34 | end;
35 |
36 | end;
37 |
38 | return;
39 |
40 | % Results differ to cantata output for scale >= 3 in the 4th d.p.
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/code/setvalues.m:
--------------------------------------------------------------------------------
1 | %##########################################################################
2 | %
3 | % [stdd,sizz] = setvalues(scale)
4 | %
5 | % Set values for generating 2d Gaussian filter according to
6 | % input scale.
7 | %
8 | % Input: scale
9 | %
10 | % Output: stdd: std dev'n along width (along height assumed to be 1)
11 | % size: width of output = #columns (height assumed to be 1)
12 | %
13 | %##########################################################################
14 |
15 | function[stdd,sizz] = setvalues(scale);
16 |
17 | if (scale < 3)
18 | stdd = 1;
19 | else
20 | stdd = sqrt((2^(scale-2))^2 - 1);
21 | end;
22 |
23 | sizz = 2 * ceil(4.6 * stdd) + 1;
24 |
25 | return;
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/edge.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/edge.jpg
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/filters/g1x05.ascii:
--------------------------------------------------------------------------------
1 | 0.750938 0 -0.750938
2 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/filters/g1x1.ascii:
--------------------------------------------------------------------------------
1 | 0.000535321 0.0132955 0.107982 0.241971 -0 -0.241971 -0.107982 -0.0132955 -0.000535321
2 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/filters/g1y05.ascii:
--------------------------------------------------------------------------------
1 | 0.750938
2 | 0
3 | -0.750938
4 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/filters/g1y1.ascii:
--------------------------------------------------------------------------------
1 | 0.000535321
2 | 0.0132955
3 | 0.107982
4 | 0.241971
5 | -0
6 | -0.241971
7 | -0.107982
8 | -0.0132955
9 | -0.000535321
10 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/filters/g2x05.ascii:
--------------------------------------------------------------------------------
1 | 0.0594001 1.02157 -2.16194 1.02157 0.0594001
2 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/filters/g2x1.ascii:
--------------------------------------------------------------------------------
1 | 0.00200744 0.0354546 0.161972 0 -0.39894 0 0.161972 0.0354546 0.00200744
2 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/filters/g2y05.ascii:
--------------------------------------------------------------------------------
1 | 0.0594002
2 | 1.02157
3 | -2.16194
4 | 1.02157
5 | 0.0594002
6 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/filters/g2y1.ascii:
--------------------------------------------------------------------------------
1 | 0.00200744
2 | 0.0354546
3 | 0.161972
4 | 0
5 | -0.39894
6 | 0
7 | 0.161972
8 | 0.0354546
9 | 0.00200744
10 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/filters/gx05.ascii:
--------------------------------------------------------------------------------
1 | 0.157727 0.684552 0.157727
2 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/filters/gx1.ascii:
--------------------------------------------------------------------------------
1 | 0.00443185 0.053991 0.241971 0.398942 0.241971 0.053991 0.00443185
2 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/filters/gy05.ascii:
--------------------------------------------------------------------------------
1 | 0.157726
2 | 0.68455
3 | 0.157726
4 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/filters/gy1.ascii:
--------------------------------------------------------------------------------
1 | 0.00443185
2 | 0.053991
3 | 0.241971
4 | 0.398942
5 | 0.241971
6 | 0.053991
7 | 0.00443185
8 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/images/P1020177.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/images/P1020177.jpg
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/images/peppers/img.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/ElderZuckerEdgeDetector/images/peppers/img.jpg
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/computeKernel.m:
--------------------------------------------------------------------------------
1 | function [kern,ind]=computeKernel(e,r_max,SIGMA_X, SIGMA_TH, r_res, th_res)
2 | %computing the kernel for the probabilistic hough tranform
3 | r_th = e;
4 | C =[SIGMA_X^2 + (r_th^2) * (SIGMA_TH^2), r_th * (SIGMA_TH^2); r_th * (SIGMA_TH^2), SIGMA_TH^2];
5 |
6 | C_inv = inv(C);
7 | C_det = det(C);
8 | N = 1 / (2*pi * sqrt(C_det));
9 | R = -round2frac(3 *sqrt(C(1,1)), r_res):r_res:round2frac(3 *sqrt(C(1,1)), r_res);
10 | TH = -round2frac(3 * SIGMA_TH, th_res):th_res:round2frac(3 * SIGMA_TH, th_res);
11 | c=C_inv(1,1);
12 | d=C_inv(1,2);
13 | g=C_inv(2,1);
14 | f=C_inv(2,2);
15 | [a,b]=meshgrid(R,TH);
16 | vals=N * exp(-0.5*((a*c+b*g).*a+(a*d+b*f).*b));
17 | [r, c] = find(vals > 0.05*max(vals(:)));
18 | m_c = min(c) - 1;
19 | m_r = min(r) - 1;
20 | linearInd = sub2ind([length(TH),length(R)], r, c);
21 | kern=[c- m_c,r- m_r, vals(linearInd)];
22 | ind = e + r_max + 1;
23 |
24 | end
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/determine_hough_lines_kernel_vote_remove.m:
--------------------------------------------------------------------------------
1 | function [ lines, edgeStruct ] = determine_hough_lines_kernel_vote_remove( im, pp, kernels, kernels_flip, num, kernel_params, r_res, th_res, sig_bound, frac,scale_factor)
2 |
3 |
4 | %edge detection
5 | edgeStruct = main_edge(im,5,1,10,1,0,1);
6 |
7 | %find the pixel location that has edge value
8 | edge_index = find(edgeStruct.edge);
9 | edge_img_locations = [edgeStruct.xzero(edge_index),edgeStruct.yzero(edge_index)];
10 | edge_gradients = edgeStruct.g1dir(edge_index);
11 | %create a hough map
12 |
13 | map = mexVoteEdges_v3_scale(edge_img_locations, edge_gradients, kernels, kernels_flip, r_res,th_res, pp, kernel_params,scale_factor);
14 |
15 | %iteratively extract lines from hough map
16 | [P] = hough_find_peaks_vote_removal(map, num, r_res, th_res, edgeStruct, kernels, kernels_flip, pp, kernel_params, 0.0917, 0.3934, sig_bound, frac, scale_factor);
17 | %the lines consist of [rho, theta, strength]
18 | lines = P(:, 1:3);
19 | end
20 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/get_all_segments_assoc_edgeremoval.m:
--------------------------------------------------------------------------------
1 | function [ begin_points, end_points,ls_likelihoods] = get_all_segments_assoc_edgeremoval( line_data, edgeStruct, pp, LIKE_MODEL,scale_factor)
2 |
3 | begin_points = [];
4 | end_points = [];
5 | ls_likelihoods = [];
6 | for i = 1:size(line_data, 1)
7 | [~, begin_pointsi, end_pointsi, ~,~, ~, ~, ~, ~, likelihoods, edgeMap] = get_line_segment_DP_edgeremoval( edgeStruct, line_data(i,1), line_data(i,2), pp, LIKE_MODEL, scale_factor);
8 | for j = 1:size(likelihoods,2)
9 | begin_points = [begin_points; begin_pointsi(j,:)];
10 | end_points = [end_points; end_pointsi(j,:)];
11 | ls_likelihoods = [ls_likelihoods; likelihoods(j)];
12 | end
13 | edgeStruct.edge = edgeMap;
14 | end
15 |
16 | end
17 |
18 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/hough_find_peaks_vote_removal.m:
--------------------------------------------------------------------------------
1 | %% Function P = hough_find_peaks_with_near_peak_supression(map, num_lines, NHOOD)
2 | % Input
3 | % map Hough Map
4 | % num_lines Maximum number of lines
5 | % NHOOD [R, TH] neighborhood to be
6 | % surpressed
7 | %
8 | % Output
9 | % P Hough Peaks
10 | %
11 | %
12 | function [P] = hough_find_peaks_vote_removal(map, num, r_res, th_res, edgeStruct, kernels, kernels_flip, pp, kernel_params, sig_th, sig_r, sig_bound, frac, scale_factor)
13 |
14 | % Loop until no more peaks or number of desired peaks have been
15 | % selected
16 | COUNT = 0;
17 | MAX_R = 400*scale_factor;
18 | P =[];
19 | edgeMap = edgeStruct.edge;
20 | iter = 1;
21 | [m,n]=size(edgeMap);
22 | while 1
23 | iter = iter + 1;
24 | % Find max peak:
25 | [maxmap,ind]=max(map(:));
26 | [r,c] = ind2sub(size(map), ind);
27 | if length(r) > 1, r = r(1); c = c(1); end
28 | %here are some stopping criteria
29 | if isempty(r)
30 | return;
31 | end
32 | [rho, theta] = mat2hough_scale(r, c, MAX_R, r_res, th_res);
33 | if ismember([rho, theta, maxmap], P, 'rows', 'legacy')
34 | return;
35 | end
36 | if COUNT > 0
37 | if (maxmap/P(1,3)) < frac
38 | return;
39 | end
40 | end
41 | % Save max peak
42 | P = [P; [rho theta maxmap]];
43 | COUNT = COUNT + 1;
44 |
45 | % If reached number of lines, return
46 | if size(P, 1) == num
47 | return;
48 | end
49 |
50 | %there following block of code identify the location of edges that
51 | %need to be removed from the hough map and edge map
52 | indexXY=sampleLine(rho,theta,n,m,pp);
53 | yy=ceil(indexXY(:,2)+pp(2));
54 | xx=ceil(indexXY(:,1)+pp(1));
55 | edge_index = sub2ind([m,n],yy,xx);
56 | X_1 = rho * cos(theta) - 2000*cos(theta+pi/2) + pp(1);
57 | X_2 = rho * cos(theta) + 2000*cos(theta+pi/2) + pp(1);
58 | Y_1 = rho * sin(theta) - 2000*sin(theta+pi/2) + pp(2);
59 | Y_2 = rho * sin(theta) + 2000*sin(theta+pi/2) + pp(2);
60 | M = (Y_2-Y_1)/(X_2-X_1+1e-7);
61 | b = Y_2 - X_2*M;
62 | line_eq = [M, -1, b];
63 |
64 | edge_img_locations = [edgeStruct.xzero(edge_index),edgeStruct.yzero(edge_index), ones(length(edge_index(:)),1)];
65 | edge_gradients = edgeStruct.g1dir(edge_index);
66 |
67 | edge_gradients2 = edge_gradients;
68 | indexless0=edge_gradients2 < 0;
69 | indexgreaterpi=edge_gradients2>pi;
70 | edge_gradients2(indexless0) = edge_gradients2(indexless0) + pi;
71 | edge_gradients2(indexgreaterpi)= edge_gradients2(indexgreaterpi)-pi;
72 |
73 | edge_gradients2 = pi - edge_gradients2;
74 | edgetetalesspi=edge_gradients2 - theta<-pi/2;
75 | edge_gradients2(edgetetalesspi)= edge_gradients2(edgetetalesspi)+pi;
76 | edgethetagreaterpi=edge_gradients2-theta>pi/2;
77 | edge_gradients2(edgethetagreaterpi)= edge_gradients2(edgethetagreaterpi)-pi;
78 | orientationDiff = abs(edge_gradients2 - theta);
79 | distances = (abs(line_eq*edge_img_locations')'/norm(line_eq(1:2)));
80 |
81 | distanceBoundary=(distances <= sig_bound*sig_r);
82 | edge_img_locations_remove = edge_img_locations(distanceBoundary, 1:2);
83 | edge_gradients_remove = edge_gradients(distanceBoundary);
84 |
85 | orientationDiff = orientationDiff(distanceBoundary);
86 | edge_index = edge_index(distanceBoundary);
87 | orientatinDiffboundary=orientationDiff <=sig_bound*sig_th;
88 | edge_img_locations_remove = edge_img_locations_remove(orientatinDiffboundary, :);
89 | edge_gradients_remove = edge_gradients_remove(orientatinDiffboundary);
90 | edge_index = edge_index(orientatinDiffboundary);
91 |
92 | if isempty(edge_img_locations_remove)
93 | break;
94 | end
95 | edgeMap(edge_index) = 0;
96 | %remove the detected lines from the hough map
97 | map=mexRemoveVotes_v3_scale(edge_img_locations_remove, edge_gradients_remove, kernels, kernels_flip, r_res, th_res, pp, kernel_params, map, scale_factor);
98 |
99 | %map = mexRemoveVotes_v3_scale(edge_img_locations_remove, edge_gradients_remove, kernels, kernels_flip, r_res, th_res, pp, kernel_params, map, scale_factor);
100 |
101 | end
102 | end
103 |
104 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/kernelInitialization.m:
--------------------------------------------------------------------------------
1 | function [kernels, kernels_flip, kernel_params] =kernelInitialization(img)
2 | [m,n,~]=size(img);
3 | scale_factor = sqrt(m^2+n^2)/800; %800 is the diagnal length of 640x480 image
4 | maxr = floor(400*scale_factor);
5 | sigmax = 0.4;
6 | r_res = 0.2;
7 | th_res = 0.002;
8 | sigmatheta = 5.4*(pi/180);
9 | [kernels, kernels_flip, kernel_params] = precompute_kernels_sparse_res2(maxr, sigmax, sigmatheta, r_res, th_res);
10 | end
11 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/lineSegmentation_HighRes.m:
--------------------------------------------------------------------------------
1 | function [lines, fullLines] =lineSegmentation_HighRes(img,kernels, kernels_flip, kernel_params)
2 | %use 640x480 image as a reference. the diagonal size of this image is 800
3 | %if image size 640x480 scale factor = 1
4 | %if image size 1280x960 scale factor = 2 ... etc.
5 | %the lines variable contains the detected line segmentations it arranged as
6 | %[x1 y1 x2 y2 probability]
7 | %The fullLines are the detected lines. It is arranged as [rho theta probability]
8 | pp=[307.551305282635,251.454244960136]; %principle point
9 | sig_bound = 3; %threshold for the line detection
10 | r_res = 0.2; %the theshold for the rho
11 | th_res = 0.002; %the threshold for theta
12 | [m,n,~]=size(img);
13 | scale_factor = sqrt(m^2+n^2)/800; %800 is the diagnal length of 640x480 image
14 | %the kernel of the algorithm is calibrated on 640x480 image
15 | %rescale the principle point
16 | pp(1)=pp(1)*n/640;
17 | pp(2)=pp(2)*m/480;
18 | [lines, fullLines] = run_lineSegmentAlgorithm(kernels, kernels_flip, kernel_params, sig_bound, r_res, th_res, img, scale_factor,pp);
19 |
20 | end
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/mexfiles/.DS_Store
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/hmmParameters.mexa64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/mexfiles/hmmParameters.mexa64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/hmmParameters.mexmaci64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/mexfiles/hmmParameters.mexmaci64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/mexRemoveVotes_v3_scale.mexa64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/mexfiles/mexRemoveVotes_v3_scale.mexa64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/mexRemoveVotes_v3_scale.mexmaci64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/mexfiles/mexRemoveVotes_v3_scale.mexmaci64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/mexVoteEdges_v3_scale.mexa64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/mexfiles/mexVoteEdges_v3_scale.mexa64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/mexVoteEdges_v3_scale.mexmaci64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/mexfiles/mexVoteEdges_v3_scale.mexmaci64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/returnLines.m:
--------------------------------------------------------------------------------
1 | function [begin_points,end_points,lslength,startpositions,endpositions]=returnLines(points_proj,final_labels)
2 | count = 0;
3 | on_seg = false;
4 | begin_pointsT = zeros(20,2);
5 | counter_begin_points=1;
6 | end_pointsT = zeros(20,2);
7 | counter_end_points=1;
8 | lslengthT = zeros(20,1);
9 | counter_lslength=1;
10 | startpos = 0;
11 | startpositionsT = zeros(20,1);
12 | counter_startpositions=1;
13 | endpositionsT = zeros(20,1);
14 | counter_endpositions=1;
15 |
16 | for i = 1:length(final_labels);
17 | if ~on_seg
18 | if final_labels(i) == 1
19 | begin_pointsT(counter_begin_points,:)=points_proj(i,:);
20 | counter_begin_points=counter_begin_points+1;
21 | startpositionsT(counter_startpositions) = i;
22 | counter_startpositions=counter_startpositions+1;
23 | startpos = i;
24 | on_seg = true;
25 | count = count + 1;
26 | end
27 | elseif i == length(final_labels)
28 | end_pointsT(counter_end_points,:) =points_proj(i,:);
29 | counter_end_points=counter_end_points+1;
30 | endpositionsT(counter_endpositions) = i;
31 | counter_endpositions=counter_endpositions+1;
32 | lslengthT(counter_lslength) = i-startpos;
33 | counter_lslength=counter_lslength+1;
34 | on_seg = false;
35 | elseif final_labels(i) == 0
36 | end_pointsT(counter_end_points,:) = points_proj(i-1,:);
37 | counter_end_points=counter_end_points+1;
38 | endpositionsT(counter_endpositions) = i-1;
39 | counter_endpositions=counter_endpositions+1;
40 | lslengthT(counter_lslength) = i-startpos;
41 | counter_lslength=counter_lslength+1;
42 | on_seg = false;
43 | end
44 | end
45 |
46 | begin_points = begin_pointsT(1:counter_begin_points-1,:);
47 | end_points =end_pointsT(1:counter_end_points-1,:);
48 | lslength =lslengthT(1:counter_lslength-1);
49 | startpositions =startpositionsT(1:counter_startpositions);
50 | endpositions =endpositionsT(1:counter_endpositions-1);
51 |
52 | end
53 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/returnLines.mexa64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/mexfiles/returnLines.mexa64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/returnLines.mexmaci64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/mexfiles/returnLines.mexmaci64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/sampleLine.m:
--------------------------------------------------------------------------------
1 | function L = sampleLine(rho,theta,m,n,pp)
2 | %Returns locations of line samples together with the locations
3 | %of the associated pixels in the image.
4 | %(rho, theta) represents the line as per Fig. 1 of Tal (2012):
5 | %rho = x*cos(theta) + y*sin(theta) <--> ax + by + c = 0 where
6 | %a = cos(theta), b = sin(theta), c = -rho.
7 | %pp is the principal point, in pixels.
8 | %(m, n) is the width and height of the image in pixels.
9 | %The returned matrix L is N x 4, where N is the number of
10 | %samples on the line. The 4 columns represent (x,y,xp,yp)
11 | %where (x,y) indicates the real-valued location of the line
12 | %sample and (xp,yp) represents the integer-valued location
13 | %of the associated pixel. Note that the y index increases down.
14 |
15 | %Translate to standard representation of line
16 | a = cos(theta);
17 | b = sin(theta);
18 | c = -rho;
19 |
20 | %Location of centre of image
21 | x0 = pp(1);
22 | y0 = pp(2);
23 |
24 | %Find image bounds
25 | left = 1 - x0;
26 | right = m - x0;
27 | top = 1 - y0;
28 | bottom = n - y0;
29 |
30 | %Identify pixels within 2 pixels of line
31 | maxpts = round(5*sqrt(m^2+n^2));
32 | %Pre-allocate for efficiency
33 | xp = zeros(maxpts,1);yp = zeros(maxpts,1);
34 | idx = 1;
35 | %Closer to horizontal - march along x.
36 | if theta > pi/4 && theta < 3*pi/4
37 | x = left:right;
38 | yu = floor(min(bottom,(-c+2 - x*a)/b));
39 | yl = ceil(max(top,(-c-2 - x*a)/b));
40 | for i = 1:m
41 | npts = max(0,yu(i)-yl(i) + 1);
42 | xp(idx:idx + npts-1) = x(i);
43 | yp(idx:idx + npts-1) = yl(i):yu(i);
44 | idx = idx + npts;
45 | end
46 | else %Closer to vertical - march along y
47 | y = top:bottom;
48 | %if theta pi/4 & theta < 3*pi/4
71 | % [x,idx] = sort(x);
72 | % else
73 | % [y,idx] = sort(y);
74 | % end
75 | % L = L(idx,:);
76 | % npts = size(L,1);
77 | % npts;
78 | % figure;
79 | % eps = endpoints(rho,theta,left,right,top,bottom);
80 | % plot(eps(:,1),eps(:,2),'r');
81 | % hold on;
82 | % plot(xp,yp,'.');
83 | % axis ij;
84 | % axis equal;
85 | % axis([left,right,top,bottom]);
86 |
87 |
88 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/sampleLine.mexa64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/mexfiles/sampleLine.mexa64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/mexfiles/sampleLine.mexmaci64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/mexfiles/sampleLine.mexmaci64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/parameters/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/parameters/.DS_Store
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/parameters/likelihood_model.mat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/MCMLSD/code/parameters/likelihood_model.mat
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/precompute_kernels_sparse_res2.m:
--------------------------------------------------------------------------------
1 | function [ kernels, kernels_flip, kernel_params] = precompute_kernels_sparse_res2(r_max, SIGMA_X, SIGMA_TH, r_res, th_res)
2 | %PRECOMPUTE_KERNELS Precomputes the kernels for Hough Transform
3 | %
4 | % Inputs:
5 | % r_max: Maximum value r_th can take
6 | % SIGMA_X: Variance of the distribution of position
7 | % SIGMA_TH: Variance of the distribution of angular
8 | % uncertainty
9 | %
10 | % Output:
11 | % kernels: Precomputed kernels for the ranges
12 | %
13 | % Author:
14 | % Ron Tal
15 | %
16 | % Date:
17 | % January 18, 2009
18 | %
19 | % Description:
20 | % This function precomputes the kernels to be used in the
21 | % Hough Transform method. The kernels are computed for the
22 | % given range at the given resolutions, using the given sigma
23 | % values.
24 | %
25 | % Recommended value for SIGMA_TH: 0.1308
26 | % Recommended value for SIGMA_X: 0.3933
27 | %
28 | kernels = cell(1, r_max);
29 | kernels_flip = cell(1, r_max);
30 | kernel_params = cell(1, r_max);
31 | for e = -r_max:1:r_max
32 | [kern,ind]=computeKernel(e,r_max,SIGMA_X, SIGMA_TH, r_res, th_res);
33 | kernels(1, ind) = {kern};
34 | kernels_flip(1, ind) = {kern};
35 | kernel_params(1, ind) = {max(kern)};
36 | end
37 | end
38 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/project_point_to_line_segment_vec.m:
--------------------------------------------------------------------------------
1 | function [q, d] = project_point_to_line_segment_vec(A,B,p)
2 | % returns q the closest point to p on the line segment from A to B
3 | % q = zeros(size(p));
4 | % vector from A to B
5 | % Vectorize input
6 | [m, n] = size(p);
7 | A_v = repmat(A,m,1);
8 | B_v = repmat(B, m,1);
9 | AB = (B_v-A_v);
10 | % squared distance from A to B
11 | AB_squared = dot(AB(1,:),AB(1,:));
12 | if(AB_squared == 0)
13 | % A and B are the same point
14 | q = A_v;
15 | else
16 | % vector from A to p
17 | Ap = (p-A_v);
18 | t = dot(Ap,AB, 2)/AB_squared;
19 | q = A_v + repmat(t,1,2).* AB;
20 | q(t < 0.0,:) = A_v(t < 0.0,:);
21 | q(t > 1.0,:) = B_v(t > 1.0,:);
22 | end
23 | diff = q-p;
24 | d = sqrt(diff(:,1).^2 + diff(:,2).^2);
25 | end
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/run_lineSegmentAlgorithm.m:
--------------------------------------------------------------------------------
1 | function [out, P] = run_lineSegmentAlgorithm(kernels, kernels_flip, kernel_params, sig_bound, r_res, th_res, img,scale_factor,pp)
2 |
3 |
4 |
5 | frac = 0.05;
6 | %the maximum number of lines that could be extract from the algorithm
7 | maxLine=5000;
8 | LIKE_MODEL = load(['parameters', filesep, 'likelihood_model.mat']);
9 | [P, edgeStruct] = determine_hough_lines_kernel_vote_remove(img, pp, kernels, kernels_flip, maxLine, kernel_params, r_res, th_res, sig_bound, frac,scale_factor);
10 | [begin_points, end_points,ls_likelihoods] = get_all_segments_assoc_edgeremoval( P, edgeStruct, pp, LIKE_MODEL, scale_factor);
11 | ttlLS = size(begin_points,1);
12 | out = zeros(ttlLS,5);
13 | for dd = 1:ttlLS
14 | out(dd,:) = [begin_points(dd,1), begin_points(dd,2), end_points(dd,1), end_points(dd,2),ls_likelihoods(dd)]; %E.A.
15 | end
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/trace_Back.m:
--------------------------------------------------------------------------------
1 | function [ lsjoint, lslogz, final_labels, on_nodes, likelihoods ] = trace_Back(DP_table, aux_table, z, node_idx, obsLike)
2 | % It traces back the dinamic programming results assigning labels to each
3 | % position (On, Off). It also computes the joint probability and the log
4 | % evidenct for each line segment. Additionally computes the sum of the
5 | % marginals of all locations along the detected segments
6 | %
7 | % Input
8 | % - DP_Table: Table that contains the partial results of the Dynamic
9 | % programing solution
10 | % - aux_table: table that contains the labels and it will be used to
11 | % unbound the results
12 | % - z: Normalization constant
13 | % - gamma: Marginals at each position along the line
14 | % - node_idx: Locations along the line to be considered
15 | %
16 | % Output:
17 | % - lsjoint: Joint probabilty at segment level
18 | % - lslogz: Evidence of line segments
19 | % - lsgamma: Sum of the marginals of the positions along segments
20 | % - final_labels: labels associated with the positions along the line
21 | % - on_nodes: list of indeces associated with a segment
22 |
23 | final_labels = zeros(1, length(node_idx));
24 | [~, final_labels(1,end)] = max(DP_table(:,end));
25 | on_nodes = [];
26 | lsjoint = [];
27 | lslogz = [];
28 | likelihoods = [];
29 | prev = 2; %control start and end line segments -- E.A.
30 | logz_tmp = 0;
31 | ctrl = 0; % used to control end of the line cases
32 | lsId = 1;
33 | for i = length(node_idx)-1:-1:1
34 | ind = final_labels(i+1);
35 | final_labels(i) = aux_table(ind, i+1);
36 | %sum the log of the partial evidences.
37 | if ctrl == 1 && ind == 1
38 | logz_tmp = logz_tmp + log(z(i+1));
39 | % lsgamma(:,lsId) = lsgamma(:,lsId) + gamma(:,i+1);
40 | likelihoods(lsId) = likelihoods(lsId) + obsLike(1,i+1);
41 | on_nodes = [on_nodes; node_idx(i+1)];
42 | end
43 | if ind == 1 && prev == 2 %begining of a segment
44 | endProb = DP_table(ind,i+1);
45 | logz_tmp = log(z(i+1));
46 | % lsgamma(:,lsId) = gamma(:,i+1);
47 | likelihoods(lsId) = obsLike(1,i+1);
48 | on_nodes = [on_nodes; node_idx(i+1)];
49 | ctrl = 1;
50 | elseif ind == 2 && prev == 1
51 | startProb = DP_table(ind, i+1);
52 | lsjoint = [lsjoint; endProb - startProb];
53 | lslogz = [lslogz; logz_tmp];
54 | lsId = lsId + 1;
55 | logz_tmp = 0;
56 | ctrl = 0;
57 | elseif ind == 1 && i == 1
58 | lsjoint = [lsjoint; endProb];
59 | lslogz = [lslogz; logz_tmp];
60 |
61 | end
62 | prev = ind;
63 | %%
64 | end
65 |
66 | %% E.A. Posterior prob.
67 | lsjoint = flipud(lsjoint); %E.A. To match the line segment output
68 | lslogz = flipud(lslogz); %E.A. To match the line segment output
69 |
70 | likelihoods = fliplr(likelihoods);
71 |
72 | end
73 |
74 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/utils/getDebug.m:
--------------------------------------------------------------------------------
1 | function r = getDebug
2 | global debug
3 | r = debug;
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/utils/getImg.m:
--------------------------------------------------------------------------------
1 | function r = getImg
2 | global origImg
3 | r = origImg;
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/utils/getLegend.m:
--------------------------------------------------------------------------------
1 | function r = getLegend
2 | global legendStr
3 | r = legendStr;
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/utils/setDebug.m:
--------------------------------------------------------------------------------
1 | function setDebug(val)
2 | global debug
3 | debug = val;
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/utils/setImg.m:
--------------------------------------------------------------------------------
1 | function setImg(img)
2 | global origImg
3 | origImg = img;
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/code/utils/setLegend.m:
--------------------------------------------------------------------------------
1 | function setLegend(val)
2 | global legendStr
3 | legendStr = val;
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/MCMLSD/demo_start_v2.m:
--------------------------------------------------------------------------------
1 | clear
2 | clc
3 | close all
4 |
5 | addpath(genpath('code/'));
6 | addpath('Imgs/');
7 | img = imread(['Imgs', filesep, 'P1040823hr.jpg']);
8 | img = imresize(img, [round(size(img,1)/4), round(size(img,2)/4)]);
9 |
10 | %compute the kernel for the image size
11 | %you only need to compute the kernal once for one an image size
12 | [kernels, kernels_flip, kernel_params] =kernelInitialization(img);
13 | ticId = tic;
14 | %the lines variable contains the detected line segmentations it arranged as
15 | %[x1 y1 x2 y2 probability]
16 | %The fullLines are the detected lines. It is arranged as [rho theta probability]
17 | [lines, fullLines] =lineSegmentation_HighRes(img,kernels, kernels_flip, kernel_params);
18 | display('Total time');
19 | toc(ticId)
20 | fig = figure;
21 | imshow(img);
22 | hold all
23 | %Order lines by probability
24 | lines = sortrows(lines, -5);
25 | ttlLines = size(lines,1);
26 | for i = 1:90
27 | %plot the top 90 lines
28 | line([lines(i,1) lines(i,3)], [lines(i,2) lines(i,4)],'Color', rand(1,3), 'LineWidth', 3);
29 | end
30 |
31 | %please use code in Evaluation code.zip to evaluate the performance of the line segmentation algorithm
32 |
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/._MCMLSD:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/._MCMLSD
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/._.DS_Store:
--------------------------------------------------------------------------------
1 | Mac OS X 2 F x ATTR x x
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/._Evaluation Code.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/._Evaluation Code.zip
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/._Imgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/._Imgs
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/._Readme.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/._Readme.txt
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/._code:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/._code
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/._demo_start_v2.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/._demo_start_v2.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/Imgs/._.DS_Store:
--------------------------------------------------------------------------------
1 | Mac OS X 2 F x ATTR x x
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/Imgs/._P1040779.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/Imgs/._P1040779.JPG
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/Imgs/._P1040812hr.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/Imgs/._P1040812hr.JPG
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/Imgs/._P1040823.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/Imgs/._P1040823.jpg
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/Imgs/._P1040823hr.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/Imgs/._P1040823hr.JPG
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._.DS_Store:
--------------------------------------------------------------------------------
1 | Mac OS X 2 F x ATTR x x
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._ElderZuckerEdgeDetector:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._ElderZuckerEdgeDetector
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._computeKernel.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._computeKernel.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._determine_hough_lines_kernel_vote_remove.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._determine_hough_lines_kernel_vote_remove.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._get_all_segments_assoc_edgeremoval.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._get_all_segments_assoc_edgeremoval.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._get_line_segment_DP_edgeremoval.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._get_line_segment_DP_edgeremoval.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._hough_find_peaks_vote_removal.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._hough_find_peaks_vote_removal.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._kernelInitialization.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._kernelInitialization.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._lineSegmentation_HighRes.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._lineSegmentation_HighRes.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._mexfiles:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._mexfiles
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._parameters:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._parameters
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._precompute_kernels_sparse_res2.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._precompute_kernels_sparse_res2.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._project_point_to_line_segment_vec.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._project_point_to_line_segment_vec.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._run_lineSegmentAlgorithm.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._run_lineSegmentAlgorithm.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._trace_Back.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._trace_Back.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._utils:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/._utils
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/._code:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/._code
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/._edge.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/._edge.jpg
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/._filters:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/._filters
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/._images:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/._images
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._checkInParam.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._checkInParam.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._checkOutParam.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._checkOutParam.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._check_save_requirements.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._check_save_requirements.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._convolve_2.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._convolve_2.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._d2gauss.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._d2gauss.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._derivative2nd.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._derivative2nd.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._elderEdge.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._elderEdge.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._elderEdge.m~:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._elderEdge.m~
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._find_edges.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._find_edges.c
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._find_edges.mexa64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._find_edges.mexa64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._find_edges.mexmaci64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._find_edges.mexmaci64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._find_edges.mexw64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._find_edges.mexw64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._g1scale.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._g1scale.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._g1steer.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._g1steer.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._g2scale.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._g2scale.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._g2steer.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._g2steer.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._gauss.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._gauss.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._gradient.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._gradient.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._main_edge.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._main_edge.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._mat2hough_scale.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._mat2hough_scale.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._plot_edgelmap.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._plot_edgelmap.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._round2frac.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._round2frac.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._run_elderEdge.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._run_elderEdge.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._scalespace.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._scalespace.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._setvalues.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/code/._setvalues.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g1x05.ascii:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g1x05.ascii
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g1x1.ascii:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g1x1.ascii
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g1y05.ascii:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g1y05.ascii
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g1y1.ascii:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g1y1.ascii
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g2x05.ascii:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g2x05.ascii
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g2x1.ascii:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g2x1.ascii
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g2y05.ascii:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g2y05.ascii
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g2y1.ascii:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._g2y1.ascii
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._gx05.ascii:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._gx05.ascii
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._gx1.ascii:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._gx1.ascii
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._gy05.ascii:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._gy05.ascii
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._gy1.ascii:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._gy1.ascii
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._resource.frk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/filters/._resource.frk
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/images/._P1020177.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/images/._P1020177.jpg
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/images/._peppers:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/images/._peppers
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/images/peppers/._img.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/ElderZuckerEdgeDetector/images/peppers/._img.jpg
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._.DS_Store:
--------------------------------------------------------------------------------
1 | Mac OS X 2 F x ATTR x x
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._hmmParameters.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._hmmParameters.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._hmmParameters.mexa64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._hmmParameters.mexa64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._hmmParameters.mexmaci64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._hmmParameters.mexmaci64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._hmmParameters.prj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._hmmParameters.prj
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._mexRemoveVotes_v3_scale.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._mexRemoveVotes_v3_scale.c
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._mexRemoveVotes_v3_scale.mexa64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._mexRemoveVotes_v3_scale.mexa64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._mexRemoveVotes_v3_scale.mexmaci64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._mexRemoveVotes_v3_scale.mexmaci64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._mexVoteEdges_v3_scale.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._mexVoteEdges_v3_scale.c
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._mexVoteEdges_v3_scale.mexa64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._mexVoteEdges_v3_scale.mexa64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._mexVoteEdges_v3_scale.mexmaci64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._mexVoteEdges_v3_scale.mexmaci64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._returnLines.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._returnLines.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._returnLines.mexa64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._returnLines.mexa64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._returnLines.mexmaci64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._returnLines.mexmaci64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._returnLines.prj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._returnLines.prj
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._sampleLine.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._sampleLine.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._sampleLine.mexa64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._sampleLine.mexa64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._sampleLine.mexmaci64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._sampleLine.mexmaci64
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._sampleLine.prj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/mexfiles/._sampleLine.prj
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/parameters/._.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/parameters/._.DS_Store
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/parameters/._likelihood_model.mat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/parameters/._likelihood_model.mat
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/utils/._getDebug.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/utils/._getDebug.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/utils/._getImg.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/utils/._getImg.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/utils/._getLegend.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/utils/._getLegend.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/utils/._setDebug.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/utils/._setDebug.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/utils/._setImg.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/utils/._setImg.m
--------------------------------------------------------------------------------
/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/utils/._setLegend.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vincentqyw/LineSegmentsDetection/b6ae4fd086433ab3d13a535ecce8ded414e4dfb5/thirdparty/MCMLSD/__MACOSX/MCMLSD/code/utils/._setLegend.m
--------------------------------------------------------------------------------