Skip to content

Commit f3cbbbb

Browse files
authored
Update fld_lines.cpp
1 parent fdde1d9 commit f3cbbbb

File tree

1 file changed

+2
-59
lines changed

1 file changed

+2
-59
lines changed

modules/ximgproc/samples/fld_lines.cpp

+2-59
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ int main(int argc, char** argv)
5454
vector<Vec4f> lines;
5555

5656
// Because of some CPU's power strategy, it seems that the first running of
57-
// an algorithm takes much longer. So here we run the algorithm 10 times
57+
// an algorithm takes much longer. So here we run the algorithm 5 times
5858
// to see the algorithm's processing time with sufficiently warmed-up
5959
// CPU performance.
6060
for (int run_count = 0; run_count < 5; run_count++) {
@@ -71,64 +71,7 @@ int main(int argc, char** argv)
7171
Mat line_image_fld(image);
7272
fld->drawSegments(line_image_fld, lines);
7373
imshow("FLD result", line_image_fld);
74-
75-
waitKey(1);
76-
77-
Ptr<EdgeDrawing> ed = createEdgeDrawing();
78-
ed->params.EdgeDetectionOperator = EdgeDrawing::SOBEL;
79-
ed->params.GradientThresholdValue = 38;
80-
ed->params.AnchorThresholdValue = 8;
81-
82-
vector<Vec6d> ellipses;
83-
84-
for (int run_count = 0; run_count < 5; run_count++) {
85-
double freq = getTickFrequency();
86-
lines.clear();
87-
int64 start = getTickCount();
88-
89-
// Detect edges
90-
//you should call this before detectLines() and detectEllipses()
91-
ed->detectEdges(image);
92-
93-
// Detect lines
94-
ed->detectLines(lines);
95-
double duration_ms = double(getTickCount() - start) * 1000 / freq;
96-
cout << "Elapsed time for EdgeDrawing detectLines " << duration_ms << " ms." << endl;
97-
98-
start = getTickCount();
99-
// Detect circles and ellipses
100-
ed->detectEllipses(ellipses);
101-
duration_ms = double(getTickCount() - start) * 1000 / freq;
102-
cout << "Elapsed time for EdgeDrawing detectEllipses " << duration_ms << " ms." << endl;
103-
}
104-
105-
Mat edge_image_ed = Mat::zeros(image.size(), CV_8UC3);
106-
vector<vector<Point> > segments = ed->getSegments();
107-
108-
for (size_t i = 0; i < segments.size(); i++)
109-
{
110-
const Point* pts = &segments[i][0];
111-
int n = (int)segments[i].size();
112-
polylines(edge_image_ed, &pts, &n, 1, false, Scalar((rand() & 255), (rand() & 255), (rand() & 255)), 1);
113-
}
114-
115-
imshow("EdgeDrawing detected edges", edge_image_ed);
116-
117-
Mat line_image_ed(image);
118-
fld->drawSegments(line_image_ed, lines);
119-
120-
// Draw circles and ellipses
121-
for (size_t i = 0; i < ellipses.size(); i++)
122-
{
123-
Point center((int)ellipses[i][0], (int)ellipses[i][1]);
124-
Size axes((int)ellipses[i][2] + (int)ellipses[i][3], (int)ellipses[i][2] + (int)ellipses[i][4]);
125-
double angle(ellipses[i][5]);
126-
Scalar color = ellipses[i][2] == 0 ? Scalar(255, 255, 0) : Scalar(0, 255, 0);
127-
128-
ellipse(line_image_ed, center, axes, angle, 0, 360, color, 2, LINE_AA);
129-
}
130-
131-
imshow("EdgeDrawing result", line_image_ed);
13274
waitKey();
75+
13376
return 0;
13477
}

0 commit comments

Comments
 (0)