From 9a2317e063bcdaf46e0f8a68c7b972338b825ac8 Mon Sep 17 00:00:00 2001 From: tribta Date: Sun, 27 Aug 2017 00:02:29 +0100 Subject: [PATCH] Tutorial Hough Lines --- .../imgtrans/hough_lines/hough_lines.markdown | 235 ++++++++++++++------- .../hough_lines/images/hough_lines_result1.png | Bin 0 -> 68137 bytes .../hough_lines/images/hough_lines_result2.png | Bin 0 -> 62434 bytes .../imgproc/table_of_content_imgproc.markdown | 2 + samples/cpp/houghlines.cpp | 77 ------- samples/cpp/tutorial_code/ImgTrans/houghlines.cpp | 89 ++++++++ .../ImgTrans/HoughLine/HoughLines.java | 96 +++++++++ .../ImgTrans/HoughLine/hough_lines.py | 79 +++++++ 8 files changed, 419 insertions(+), 159 deletions(-) create mode 100644 doc/tutorials/imgproc/imgtrans/hough_lines/images/hough_lines_result1.png create mode 100644 doc/tutorials/imgproc/imgtrans/hough_lines/images/hough_lines_result2.png delete mode 100644 samples/cpp/houghlines.cpp create mode 100644 samples/cpp/tutorial_code/ImgTrans/houghlines.cpp create mode 100644 samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java create mode 100644 samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py diff --git a/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.markdown b/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.markdown index 584c3f8..8b24d87 100644 --- a/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.markdown +++ b/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.markdown @@ -1,12 +1,15 @@ Hough Line Transform {#tutorial_hough_lines} ==================== +@prev_tutorial{tutorial_canny_detector} +@next_tutorial{tutorial_hough_circle} + Goal ---- In this tutorial you will learn how to: -- Use the OpenCV functions @ref cv::HoughLines and @ref cv::HoughLinesP to detect lines in an +- Use the OpenCV functions **HoughLines()** and **HoughLinesP()** to detect lines in an image. Theory @@ -79,54 +82,93 @@ a. **The Standard Hough Transform** - It consists in pretty much what we just explained in the previous section. It gives you as result a vector of couples \f$(\theta, r_{\theta})\f$ -- In OpenCV it is implemented with the function @ref cv::HoughLines +- In OpenCV it is implemented with the function **HoughLines()** b. **The Probabilistic Hough Line Transform** - A more efficient implementation of the Hough Line Transform. It gives as output the extremes of the detected lines \f$(x_{0}, y_{0}, x_{1}, y_{1})\f$ -- In OpenCV it is implemented with the function @ref cv::HoughLinesP +- In OpenCV it is implemented with the function **HoughLinesP()** + +### What does this program do? + - Loads an image + - Applies a *Standard Hough Line Transform* and a *Probabilistic Line Transform*. + - Display the original image and the detected line in three windows. Code ---- --# **What does this program do?** - - Loads an image - - Applies either a *Standard Hough Line Transform* or a *Probabilistic Line Transform*. - - Display the original image and the detected line in two windows. - --# The sample code that we will explain can be downloaded from [here](https://github.com/opencv/opencv/tree/master/samples/cpp/houghlines.cpp). A slightly fancier version - (which shows both Hough standard and probabilistic with trackbars for changing the threshold - values) can be found [here](https://github.com/opencv/opencv/tree/master/samples/cpp/tutorial_code/ImgTrans/HoughLines_Demo.cpp). - @include samples/cpp/houghlines.cpp +@add_toggle_cpp +The sample code that we will explain can be downloaded from +[here](https://raw.githubusercontent.com/opencv/opencv/master/samples/cpp/tutorial_code/ImgTrans/houghlines.cpp). +A slightly fancier version (which shows both Hough standard and probabilistic +with trackbars for changing the threshold values) can be found +[here](https://raw.githubusercontent.com/opencv/opencv/master/samples/cpp/tutorial_code/ImgTrans/HoughLines_Demo.cpp). +@include samples/cpp/tutorial_code/ImgTrans/houghlines.cpp +@end_toggle + +@add_toggle_java +The sample code that we will explain can be downloaded from +[here](https://raw.githubusercontent.com/opencv/opencv/master/samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java). +@include samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java +@end_toggle + +@add_toggle_python +The sample code that we will explain can be downloaded from +[here](https://raw.githubusercontent.com/opencv/opencv/master/samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py). +@include samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py +@end_toggle Explanation ----------- --# Load an image - @code{.cpp} - Mat src = imread(filename, 0); - if(src.empty()) - { - help(); - cout << "can not open " << filename << endl; - return -1; - } - @endcode --# Detect the edges of the image by using a Canny detector - @code{.cpp} - Canny(src, dst, 50, 200, 3); - @endcode - Now we will apply the Hough Line Transform. We will explain how to use both OpenCV functions - available for this purpose: - --# **Standard Hough Line Transform** - -# First, you apply the Transform: - @code{.cpp} - vector lines; - HoughLines(dst, lines, 1, CV_PI/180, 100, 0, 0 ); - @endcode - with the following arguments: +#### Load an image: + +@add_toggle_cpp +@snippet samples/cpp/tutorial_code/ImgTrans/houghlines.cpp load +@end_toggle + +@add_toggle_java +@snippet samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java load +@end_toggle + +@add_toggle_python +@snippet samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py load +@end_toggle + +#### Detect the edges of the image by using a Canny detector: + +@add_toggle_cpp +@snippet samples/cpp/tutorial_code/ImgTrans/houghlines.cpp edge_detection +@end_toggle + +@add_toggle_java +@snippet samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java edge_detection +@end_toggle + +@add_toggle_python +@snippet samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py edge_detection +@end_toggle + +Now we will apply the Hough Line Transform. We will explain how to use both OpenCV functions +available for this purpose. + +#### Standard Hough Line Transform: +First, you apply the Transform: + +@add_toggle_cpp +@snippet samples/cpp/tutorial_code/ImgTrans/houghlines.cpp hough_lines +@end_toggle + +@add_toggle_java +@snippet samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java hough_lines +@end_toggle + +@add_toggle_python +@snippet samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py hough_lines +@end_toggle + +- with the following arguments: - *dst*: Output of the edge detector. It should be a grayscale image (although in fact it is a binary one) @@ -137,28 +179,35 @@ Explanation - *threshold*: The minimum number of intersections to "*detect*" a line - *srn* and *stn*: Default parameters to zero. Check OpenCV reference for more info. - -# And then you display the result by drawing the lines. - @code{.cpp} - for( size_t i = 0; i < lines.size(); i++ ) - { - float rho = lines[i][0], theta = lines[i][1]; - Point pt1, pt2; - double a = cos(theta), b = sin(theta); - double x0 = a*rho, y0 = b*rho; - pt1.x = cvRound(x0 + 1000*(-b)); - pt1.y = cvRound(y0 + 1000*(a)); - pt2.x = cvRound(x0 - 1000*(-b)); - pt2.y = cvRound(y0 - 1000*(a)); - line( cdst, pt1, pt2, Scalar(0,0,255), 3, LINE_AA); - } - @endcode --# **Probabilistic Hough Line Transform** - -# First you apply the transform: - @code{.cpp} - vector lines; - HoughLinesP(dst, lines, 1, CV_PI/180, 50, 50, 10 ); - @endcode - with the arguments: +And then you display the result by drawing the lines. +@add_toggle_cpp +@snippet samples/cpp/tutorial_code/ImgTrans/houghlines.cpp draw_lines +@end_toggle + +@add_toggle_java +@snippet samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java draw_lines +@end_toggle + +@add_toggle_python +@snippet samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py draw_lines +@end_toggle + +#### Probabilistic Hough Line Transform +First you apply the transform: + +@add_toggle_cpp +@snippet samples/cpp/tutorial_code/ImgTrans/houghlines.cpp hough_lines_p +@end_toggle + +@add_toggle_java +@snippet samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java hough_lines_p +@end_toggle + +@add_toggle_python +@snippet samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py hough_lines_p +@end_toggle + +- with the arguments: - *dst*: Output of the edge detector. It should be a grayscale image (although in fact it is a binary one) @@ -172,23 +221,47 @@ Explanation this number of points are disregarded. - *maxLineGap*: The maximum gap between two points to be considered in the same line. - -# And then you display the result by drawing the lines. - @code{.cpp} - for( size_t i = 0; i < lines.size(); i++ ) - { - Vec4i l = lines[i]; - line( cdst, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0,0,255), 3, LINE_AA); - } - @endcode --# Display the original image and the detected lines: - @code{.cpp} - imshow("source", src); - imshow("detected lines", cdst); - @endcode --# Wait until the user exits the program - @code{.cpp} - waitKey(); - @endcode +And then you display the result by drawing the lines. + +@add_toggle_cpp +@snippet samples/cpp/tutorial_code/ImgTrans/houghlines.cpp draw_lines_p +@end_toggle + +@add_toggle_java +@snippet samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java draw_lines_p +@end_toggle + +@add_toggle_python +@snippet samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py draw_lines_p +@end_toggle + +#### Display the original image and the detected lines: + +@add_toggle_cpp +@snippet samples/cpp/tutorial_code/ImgTrans/houghlines.cpp imshow +@end_toggle + +@add_toggle_java +@snippet samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java imshow +@end_toggle + +@add_toggle_python +@snippet samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py imshow +@end_toggle + +#### Wait until the user exits the program + +@add_toggle_cpp +@snippet samples/cpp/tutorial_code/ImgTrans/houghlines.cpp exit +@end_toggle + +@add_toggle_java +@snippet samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java exit +@end_toggle + +@add_toggle_python +@snippet samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py exit +@end_toggle Result ------ @@ -198,13 +271,11 @@ Result section. It still implements the same stuff as above, only adding the Trackbar for the Threshold. -Using an input image such as: - -![](images/Hough_Lines_Tutorial_Original_Image.jpg) - -We get the following result by using the Probabilistic Hough Line Transform: - -![](images/Hough_Lines_Tutorial_Result.jpg) +Using an input image such as a [sudoku image](https://raw.githubusercontent.com/opencv/opencv/master/samples/data/sudoku.png). +We get the following result by using the Standard Hough Line Transform: +![](images/hough_lines_result1.png) +And by using the Probabilistic Hough Line Transform: +![](images/hough_lines_result2.png) You may observe that the number of lines detected vary while you change the *threshold*. The explanation is sort of evident: If you establish a higher threshold, fewer lines will be detected diff --git a/doc/tutorials/imgproc/imgtrans/hough_lines/images/hough_lines_result1.png b/doc/tutorials/imgproc/imgtrans/hough_lines/images/hough_lines_result1.png new file mode 100644 index 0000000000000000000000000000000000000000..012cee5f6d03e0042a7feeb3cd2c50c4497f574e GIT binary patch literal 68137 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

bi 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 D5# OpenCV 2.0 *Author:* Ana Huamán diff --git a/samples/cpp/houghlines.cpp b/samples/cpp/houghlines.cpp deleted file mode 100644 index 94eec86..0000000 --- a/samples/cpp/houghlines.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include "opencv2/imgcodecs.hpp" -#include "opencv2/highgui.hpp" -#include "opencv2/imgproc.hpp" - -#include - -using namespace cv; -using namespace std; - -static void help() -{ - cout << "\nThis program demonstrates line finding with the Hough transform.\n" - "Usage:\n" - "./houghlines , Default is ../data/pic1.png\n" << endl; -} - -int main(int argc, char** argv) -{ - cv::CommandLineParser parser(argc, argv, - "{help h||}{@image|../data/pic1.png|}" - ); - if (parser.has("help")) - { - help(); - return 0; - } - string filename = parser.get("@image"); - if (filename.empty()) - { - help(); - cout << "no image_name provided" << endl; - return -1; - } - Mat src = imread(filename, 0); - if(src.empty()) - { - help(); - cout << "can not open " << filename << endl; - return -1; - } - - Mat dst, cdst; - Canny(src, dst, 50, 200, 3); - cvtColor(dst, cdst, COLOR_GRAY2BGR); - -#if 0 - vector lines; - HoughLines(dst, lines, 1, CV_PI/180, 100, 0, 0 ); - - for( size_t i = 0; i < lines.size(); i++ ) - { - float rho = lines[i][0], theta = lines[i][1]; - Point pt1, pt2; - double a = cos(theta), b = sin(theta); - double x0 = a*rho, y0 = b*rho; - pt1.x = cvRound(x0 + 1000*(-b)); - pt1.y = cvRound(y0 + 1000*(a)); - pt2.x = cvRound(x0 - 1000*(-b)); - pt2.y = cvRound(y0 - 1000*(a)); - line( cdst, pt1, pt2, Scalar(0,0,255), 3, CV_AA); - } -#else - vector lines; - HoughLinesP(dst, lines, 1, CV_PI/180, 50, 50, 10 ); - for( size_t i = 0; i < lines.size(); i++ ) - { - Vec4i l = lines[i]; - line( cdst, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0,0,255), 3, LINE_AA); - } -#endif - imshow("source", src); - imshow("detected lines", cdst); - - waitKey(); - - return 0; -} diff --git a/samples/cpp/tutorial_code/ImgTrans/houghlines.cpp b/samples/cpp/tutorial_code/ImgTrans/houghlines.cpp new file mode 100644 index 0000000..57f64c6 --- /dev/null +++ b/samples/cpp/tutorial_code/ImgTrans/houghlines.cpp @@ -0,0 +1,89 @@ +/** + * @file houghclines.cpp + * @brief This program demonstrates line finding with the Hough transform + */ + +#include "opencv2/imgcodecs.hpp" +#include "opencv2/highgui.hpp" +#include "opencv2/imgproc.hpp" + +using namespace cv; +using namespace std; + +int main(int argc, char** argv) +{ + // Declare the output variables + Mat dst, cdst, cdstP; + + //![load] + const char* default_file = "../../../data/sudoku.png"; + const char* filename = argc >=2 ? argv[1] : default_file; + + // Loads an image + Mat src = imread( filename, IMREAD_GRAYSCALE ); + + // Check if image is loaded fine + if(src.empty()){ + printf(" Error opening image\n"); + printf(" Program Arguments: [image_name -- default %s] \n", default_file); + return -1; + } + //![load] + + //![edge_detection] + // Edge detection + Canny(src, dst, 50, 200, 3); + //![edge_detection] + + // Copy edges to the images that will display the results in BGR + cvtColor(dst, cdst, COLOR_GRAY2BGR); + cdstP = cdst.clone(); + + //![hough_lines] + // Standard Hough Line Transform + vector lines; // will hold the results of the detection + HoughLines(dst, lines, 1, CV_PI/180, 150, 0, 0 ); // runs the actual detection + //![hough_lines] + //![draw_lines] + // Draw the lines + for( size_t i = 0; i < lines.size(); i++ ) + { + float rho = lines[i][0], theta = lines[i][1]; + Point pt1, pt2; + double a = cos(theta), b = sin(theta); + double x0 = a*rho, y0 = b*rho; + pt1.x = cvRound(x0 + 1000*(-b)); + pt1.y = cvRound(y0 + 1000*(a)); + pt2.x = cvRound(x0 - 1000*(-b)); + pt2.y = cvRound(y0 - 1000*(a)); + line( cdst, pt1, pt2, Scalar(0,0,255), 3, CV_AA); + } + //![draw_lines] + + //![hough_lines_p] + // Probabilistic Line Transform + vector linesP; // will hold the results of the detection + HoughLinesP(dst, linesP, 1, CV_PI/180, 50, 50, 10 ); // runs the actual detection + //![hough_lines_p] + //![draw_lines_p] + // Draw the lines + for( size_t i = 0; i < linesP.size(); i++ ) + { + Vec4i l = linesP[i]; + line( cdstP, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0,0,255), 3, LINE_AA); + } + //![draw_lines_p] + + //![imshow] + // Show results + imshow("Source", src); + imshow("Detected Lines (in red) - Standard Hough Line Transform", cdst); + imshow("Detected Lines (in red) - Probabilistic Line Transform", cdstP); + //![imshow] + + //![exit] + // Wait and Exit + waitKey(); + return 0; + //![exit] +} diff --git a/samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java b/samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java new file mode 100644 index 0000000..c968d32 --- /dev/null +++ b/samples/java/tutorial_code/ImgTrans/HoughLine/HoughLines.java @@ -0,0 +1,96 @@ +/** + * @file HoughLines.java + * @brief This program demonstrates line finding with the Hough transform + */ + +import org.opencv.core.*; +import org.opencv.core.Point; +import org.opencv.highgui.HighGui; +import org.opencv.imgcodecs.Imgcodecs; +import org.opencv.imgproc.Imgproc; + +class HoughLinesRun { + + public void run(String[] args) { + // Declare the output variables + Mat dst = new Mat(), cdst = new Mat(), cdstP; + + //! [load] + String default_file = "../../../../data/sudoku.png"; + String filename = ((args.length > 0) ? args[0] : default_file); + + // Load an image + Mat src = Imgcodecs.imread(filename, Imgcodecs.IMREAD_GRAYSCALE); + + // Check if image is loaded fine + if( src.empty() ) { + System.out.println("Error opening image!"); + System.out.println("Program Arguments: [image_name -- default " + + default_file +"] \n"); + System.exit(-1); + } + //! [load] + + //! [edge_detection] + // Edge detection + Imgproc.Canny(src, dst, 50, 200, 3, false); + //! [edge_detection] + + // Copy edges to the images that will display the results in BGR + Imgproc.cvtColor(dst, cdst, Imgproc.COLOR_GRAY2BGR); + cdstP = cdst.clone(); + + //! [hough_lines] + // Standard Hough Line Transform + Mat lines = new Mat(); // will hold the results of the detection + Imgproc.HoughLines(dst, lines, 1, Math.PI/180, 150); // runs the actual detection + //! [hough_lines] + //! [draw_lines] + // Draw the lines + for (int x = 0; x < lines.rows(); x++) { + double rho = lines.get(x, 0)[0], + theta = lines.get(x, 0)[1]; + + double a = Math.cos(theta), b = Math.sin(theta); + double x0 = a*rho, y0 = b*rho; + Point pt1 = new Point(Math.round(x0 + 1000*(-b)), Math.round(y0 + 1000*(a))); + Point pt2 = new Point(Math.round(x0 - 1000*(-b)), Math.round(y0 - 1000*(a))); + Imgproc.line(cdst, pt1, pt2, new Scalar(0, 0, 255), 3, Imgproc.LINE_AA, 0); + } + //! [draw_lines] + + //! [hough_lines_p] + // Probabilistic Line Transform + Mat linesP = new Mat(); // will hold the results of the detection + Imgproc.HoughLinesP(dst, linesP, 1, Math.PI/180, 50, 50, 10); // runs the actual detection + //! [hough_lines_p] + //! [draw_lines_p] + // Draw the lines + for (int x = 0; x < linesP.rows(); x++) { + double[] l = linesP.get(x, 0); + Imgproc.line(cdstP, new Point(l[0], l[1]), new Point(l[2], l[3]), new Scalar(0, 0, 255), 3, Imgproc.LINE_AA, 0); + } + //! [draw_lines_p] + + //! [imshow] + // Show results + HighGui.imshow("Source", src); + HighGui.imshow("Detected Lines (in red) - Standard Hough Line Transform", cdst); + HighGui.imshow("Detected Lines (in red) - Probabilistic Line Transform", cdstP); + //! [imshow] + + //! [exit] + // Wait and Exit + HighGui.waitKey(); + System.exit(0); + //! [exit] + } +} + +public class HoughLines { + public static void main(String[] args) { + // Load the native library. + System.loadLibrary(Core.NATIVE_LIBRARY_NAME); + new HoughLinesRun().run(args); + } +} diff --git a/samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py b/samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py new file mode 100644 index 0000000..2907996 --- /dev/null +++ b/samples/python/tutorial_code/ImgTrans/HoughLine/hough_lines.py @@ -0,0 +1,79 @@ +""" +@file hough_lines.py +@brief This program demonstrates line finding with the Hough transform +""" +import sys +import math +import cv2 +import numpy as np + + +def main(argv): + ## [load] + default_file = "../../../../data/sudoku.png" + filename = argv[0] if len(argv) > 0 else default_file + + # Loads an image + src = cv2.imread(filename, cv2.IMREAD_GRAYSCALE) + + # Check if image is loaded fine + if src is None: + print ('Error opening image!') + print ('Usage: hough_lines.py [image_name -- default ' + default_file + '] \n') + return -1 + ## [load] + + ## [edge_detection] + # Edge detection + dst = cv2.Canny(src, 50, 200, None, 3) + ## [edge_detection] + + # Copy edges to the images that will display the results in BGR + cdst = cv2.cvtColor(dst, cv2.COLOR_GRAY2BGR) + cdstP = np.copy(cdst) + + ## [hough_lines] + # Standard Hough Line Transform + lines = cv2.HoughLines(dst, 1, np.pi / 180, 150, None, 0, 0) + ## [hough_lines] + ## [draw_lines] + # Draw the lines + if lines is not None: + for i in range(0, len(lines)): + rho = lines[i][0][0] + theta = lines[i][0][1] + a = math.cos(theta) + b = math.sin(theta) + x0 = a * rho + y0 = b * rho + pt1 = (int(x0 + 1000*(-b)), int(y0 + 1000*(a))) + pt2 = (int(x0 - 1000*(-b)), int(y0 - 1000*(a))) + + cv2.line(cdst, pt1, pt2, (0,0,255), 3, cv2.LINE_AA) + ## [draw_lines] + + ## [hough_lines_p] + # Probabilistic Line Transform + linesP = cv2.HoughLinesP(dst, 1, np.pi / 180, 50, None, 50, 10) + ## [hough_lines_p] + ## [draw_lines_p] + # Draw the lines + if linesP is not None: + for i in range(0, len(linesP)): + l = linesP[i][0] + cv2.line(cdstP, (l[0], l[1]), (l[2], l[3]), (0,0,255), 3, cv2.LINE_AA) + ## [draw_lines_p] + ## [imshow] + # Show results + cv2.imshow("Source", src) + cv2.imshow("Detected Lines (in red) - Standard Hough Line Transform", cdst) + cv2.imshow("Detected Lines (in red) - Probabilistic Line Transform", cdstP) + ## [imshow] + ## [exit] + # Wait and Exit + cv2.waitKey() + return 0 + ## [exit] + +if __name__ == "__main__": + main(sys.argv[1:]) -- 2.7.4