diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-07-24 09:54:23 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-07-24 09:54:44 +0000 |
commit | 836b47cb7e99a977c5a23b059ca1d0b5065d310e (patch) | |
tree | 1604da8f482d02effa033c94a84be42bc0c848c3 /ml/dlib/examples/hough_transform_ex.cpp | |
parent | Releasing debian version 1.44.3-2. (diff) | |
download | netdata-836b47cb7e99a977c5a23b059ca1d0b5065d310e.tar.xz netdata-836b47cb7e99a977c5a23b059ca1d0b5065d310e.zip |
Merging upstream version 1.46.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ml/dlib/examples/hough_transform_ex.cpp')
-rw-r--r-- | ml/dlib/examples/hough_transform_ex.cpp | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/ml/dlib/examples/hough_transform_ex.cpp b/ml/dlib/examples/hough_transform_ex.cpp deleted file mode 100644 index 1c8b9f7bd..000000000 --- a/ml/dlib/examples/hough_transform_ex.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt -/* - - This is an example illustrating the use of the Hough transform tool in the - dlib C++ Library. - - - In this example we are going to draw a line on an image and then use the - Hough transform to detect the location of the line. Moreover, we do this in - a loop that changes the line's position slightly each iteration, which gives - a pretty animation of the Hough transform in action. -*/ - -#include <dlib/gui_widgets.h> -#include <dlib/image_transforms.h> - -using namespace dlib; - -int main() -{ - // First let's make a 400x400 image. This will form the input to the Hough transform. - array2d<unsigned char> img(400,400); - // Now we make a hough_transform object. The 300 here means that the Hough transform - // will operate on a 300x300 subwindow of its input image. - hough_transform ht(300); - - image_window win, win2; - double angle1 = 0; - double angle2 = 0; - while(true) - { - // Generate a line segment that is rotating around inside the image. The line is - // generated based on the values in angle1 and angle2. So each iteration creates a - // slightly different line. - angle1 += pi/130; - angle2 += pi/400; - const point cent = center(get_rect(img)); - // A point 90 pixels away from the center of the image but rotated by angle1. - const point arc = rotate_point(cent, cent + point(90,0), angle1); - // Now make a line that goes though arc but rotate it by angle2. - const point l = rotate_point(arc, arc + point(500,0), angle2); - const point r = rotate_point(arc, arc - point(500,0), angle2); - - - // Next, blank out the input image and then draw our line on it. - assign_all_pixels(img, 0); - draw_line(img, l, r, 255); - - - const point offset(50,50); - array2d<int> himg; - // pick the window inside img on which we will run the Hough transform. - const rectangle box = translate_rect(get_rect(ht),offset); - // Now let's compute the hough transform for a subwindow in the image. In - // particular, we run it on the 300x300 subwindow with an upper left corner at the - // pixel point(50,50). The output is stored in himg. - ht(img, box, himg); - // Now that we have the transformed image, the Hough image pixel with the largest - // value should indicate where the line is. So we find the coordinates of the - // largest pixel: - point p = max_point(mat(himg)); - // And then ask the ht object for the line segment in the original image that - // corresponds to this point in Hough transform space. - std::pair<point,point> line = ht.get_line(p); - - // Finally, let's display all these things on the screen. We copy the original - // input image into a color image and then draw the detected line on top in red. - array2d<rgb_pixel> temp; - assign_image(temp, img); - // Note that we must offset the output line to account for our offset subwindow. - // We do this by just adding in the offset to the line endpoints. - draw_line(temp, line.first+offset, line.second+offset, rgb_pixel(255,0,0)); - win.clear_overlay(); - win.set_image(temp); - // Also show the subwindow we ran the Hough transform on as a green box. You will - // see that the detected line is exactly contained within this box and also - // overlaps the original line. - win.add_overlay(box, rgb_pixel(0,255,0)); - - // We can also display the Hough transform itself using the jet color scheme. - win2.set_image(jet(himg)); - } -} - |