As part of our data science training initiative, bnosac is also providing a course on computer vision with R & Python which is held in March 9-10 in Leuven, Belgium (subscribe here or have a look at our full training offer here). Part of the course is covering finding blobs, corners, gradients, edges & lines in images.
For this reason, the R package LineSegmentDetector was made available at https://github.com/bnosac/LineSegmentDetector. It allows to detect segment lines in digital images. An example of this is shown below.
library(LineSegmentDetector) library(pixmap) ## Read in the image + make sure input to the algorithm is matrix with grey-scale values in 0-255 range imagelocation <- system.file("extdata", "chairs.pgm", package="LineSegmentDetector") image <- read.pnm(file = imagelocation, cellres = 1) x <- [email protected] * 255 ## Detect and plot the lines segments linesegments <- line_segment_detector(x) linesegments plot(image) plot(linesegments, add = TRUE, col = "red")
The line segment detector finds lines in digital grey-scale images and is an implementation of the linear-time Line Segment Detector explained at https://doi.org/10.5201/ipol.2012.gjmr-lsd. It gives subpixel accurate results and is designed to work on any digital image without parameter tuning. It controls its own number of false detections where on average, one false alarm is allowed per image.
More information here https://github.com/bnosac/LineSegmentDetector.
The algorithm requires as input a grey-scale image. So if you have another image, you can use the excellent magick package to transform it to grey scale.
library(magick) f <- tempfile(fileext = ".pgm") x <- image_read("http://www.momentumshipping.net/lounge/wp-content/uploads/2015/10/containership2.jpg") x <- image_convert(x, format = "pgm", depth = 8) image_write(x, path = f, format = "pgm") image <- read.pnm(file = f, cellres = 1) linesegments <- line_segment_detector([email protected] * 255) plot(image) plot(linesegments, add = TRUE, col = "red")
The algorithm is implemented with Rcpp and is released under the AGPL-3 license. Hope you enjoy it.
Need support in image recognition? Let us know.