This repository contains the source code of ELSED: Enhanced Line SEgment Drawing the fastest line segment detector in the literature. It is ideal for resource-limited devices like drones of smartphones. Visit the Project Webpage to try it online!
The code depends on OpenCV (tested with version 4.1.1).
To install OpenCV ...
In Ubuntu 18.04 compile it from sources with the following instructions:# Install dependencies (Ubuntu 18.04)
sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
# Download source code
git clone https://github.com/opencv/opencv.git --branch 4.1.1 --depth 1
# Create build directory
cd opencv && mkdir build && cd build
# Generate makefiles, compile and install
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j
sudo make install
To install the python wrappers you just have to run:
sudo apt-get install libopencv-dev
pip install setuptools
pip install git+https://github.com/iago-suarez/ELSED.git
And you can start playing with it:
import pyelsed
import cv2
img = cv2.imread('my_favourite_img.jpg', cv2.IMREAD_GRAYSCALE)
segments, scores = pyelsed.detect(img)
The code contains a demo detecting large and short line segments in one image. The code can be compiled with Cmake:
mkdir build && cd build
cmake .. && make
./elsed_main
The result for the provided image should be:
******************************************************
******************* ELSED main demo ******************
******************************************************
ELSED detected: 305 (large) segments
ELSED detected: 391 (short) segments
@article{suarez2022elsed,
title={ELSED: Enhanced Line SEgment Drawing},
author={Iago Suárez and José M. Buenaposada and Luis Baumela},
journal = {Pattern Recognition},
volume = {127},
pages = {108619},
year = {2022},
issn = {0031-3203},
doi = {https://doi.org/10.1016/j.patcog.2022.108619},
url = {https://www.sciencedirect.com/science/article/pii/S0031320322001005}
}