Skip to content

aliakseis/detect-lines

Repository files navigation

detect-lines

alt text

  • Image reading

  • Image low pass filtering

  • Emphasis on low image intensities:

  • Background subtraction, horizontal stripes removal

  • Obtaining one-dimensional (special case) Fourier spectra for image fragments using https://github.com/leerichardson/tree-swdft-2D

  • Finding the separation line points where spectra main frequencies abruptly change

  • Preliminary filtering of points using cv::partition and nanoflann library

  • Using RANSAC to find the separation line using separation line points

  • Using CERES solver to refine the separation line

  • Using both adaptiveThreshold and binary background subtraction to generate threshold image

  • Using thinning to obtain lines skeletons

  • Calling erode/dilate to filter out vertical lines

  • Invoking HoughLinesP to generate lines from skeletons

  • Merging lines according to https://stackoverflow.com/a/51121483/10472202

  • Filtering out short lines

  • Cutting lines using the RANSAC/CERES separation line mentioned above

  • Filtering out short lines once more

  • Search for the beginnings of short stripes with "known good" SURF data

  • Movement to the left and up along long lines

  • Merging HoughLinesP and SURF results to obtain the final data

alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text

About

exercise in classical computer vision

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages