Skip to main content

pylsd is the python bindings for LSD - Line Segment Detector

Project description

pylsd

Build Wheels PyPI Release

1. Introduction

pylsd is the python bindings for LSD - Line Segment Detector.

2. Install

This package uses distutils, which is the default way of installing python modules. To install in your home directory, securely run the following:

git clone https://github.com/primetang/pylsd.git
cd pylsd
python setup.py install

Or directly through pip to install it:

pip install pylsd

3. Usage

We can use the package by using from pylsd.lsd import lsd, and lines = lsd(src) is the call format for the lsd function, where src is a Grayscale Image (H * W numpy.array), and the return value lines is the Detected Line Segment, lines is an N * 5 numpy.array, each row represents a straight line, the 5-dimensional vector is:

[point1.x, point1.y, point2.x, point2.y, width]

According to these presentations, we can use it just like the following code (here is the link):

  • by using cv2 module
import cv2
import numpy as np
import os
from pylsd.lsd import lsd
fullName = 'car.jpg'
folder, imgName = os.path.split(fullName)
src = cv2.imread(fullName, cv2.IMREAD_COLOR)
gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
lines = lsd(gray)
for i in xrange(lines.shape[0]):
    pt1 = (int(lines[i, 0]), int(lines[i, 1]))
    pt2 = (int(lines[i, 2]), int(lines[i, 3]))
    width = lines[i, 4]
    cv2.line(src, pt1, pt2, (0, 0, 255), int(np.ceil(width / 2)))
cv2.imwrite(os.path.join(folder, 'cv2_' + imgName.split('.')[0] + '.jpg'), src)
  • by using PIL(Image) module
from PIL import Image, ImageDraw
import numpy as np
import os
from pylsd.lsd import lsd
fullName = 'house.png'
folder, imgName = os.path.split(fullName)
img = Image.open(fullName)
gray = np.asarray(img.convert('L'))
lines = lsd(gray)
draw = ImageDraw.Draw(img)
for i in xrange(lines.shape[0]):
    pt1 = (int(lines[i, 0]), int(lines[i, 1]))
    pt2 = (int(lines[i, 2]), int(lines[i, 3]))
    width = lines[i, 4]
    draw.line((pt1, pt2), fill=(0, 0, 255), width=int(np.ceil(width / 2)))
img.save(os.path.join(folder, 'PIL_' + imgName.split('.')[0] + '.jpg'))

The following is the result:

  • car.jpg by using cv2 module

  • house.png by using PIL(Image) module

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ocrd-fork-pylsd-0.0.8.tar.gz (24.8 kB view hashes)

Uploaded Source

Built Distributions

ocrd_fork_pylsd-0.0.8-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

ocrd_fork_pylsd-0.0.8-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (20.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ocrd_fork_pylsd-0.0.8-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (18.8 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

ocrd_fork_pylsd-0.0.8-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

ocrd_fork_pylsd-0.0.8-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (20.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ocrd_fork_pylsd-0.0.8-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (18.8 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

ocrd_fork_pylsd-0.0.8-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

ocrd_fork_pylsd-0.0.8-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (20.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ocrd_fork_pylsd-0.0.8-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (18.8 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

ocrd_fork_pylsd-0.0.8-cp311-cp311-musllinux_1_1_x86_64.whl (57.1 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

ocrd_fork_pylsd-0.0.8-cp311-cp311-musllinux_1_1_i686.whl (51.3 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

ocrd_fork_pylsd-0.0.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (56.5 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

ocrd_fork_pylsd-0.0.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (51.8 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ocrd_fork_pylsd-0.0.8-cp311-cp311-macosx_10_9_x86_64.whl (20.4 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

ocrd_fork_pylsd-0.0.8-cp310-cp310-musllinux_1_1_x86_64.whl (57.1 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

ocrd_fork_pylsd-0.0.8-cp310-cp310-musllinux_1_1_i686.whl (51.3 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

ocrd_fork_pylsd-0.0.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (56.5 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

ocrd_fork_pylsd-0.0.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (51.8 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ocrd_fork_pylsd-0.0.8-cp310-cp310-macosx_10_9_x86_64.whl (20.4 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

ocrd_fork_pylsd-0.0.8-cp39-cp39-musllinux_1_1_x86_64.whl (57.1 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

ocrd_fork_pylsd-0.0.8-cp39-cp39-musllinux_1_1_i686.whl (51.3 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

ocrd_fork_pylsd-0.0.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (56.5 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

ocrd_fork_pylsd-0.0.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (51.8 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ocrd_fork_pylsd-0.0.8-cp39-cp39-macosx_10_9_x86_64.whl (20.4 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

ocrd_fork_pylsd-0.0.8-cp38-cp38-musllinux_1_1_x86_64.whl (57.1 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

ocrd_fork_pylsd-0.0.8-cp38-cp38-musllinux_1_1_i686.whl (51.3 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

ocrd_fork_pylsd-0.0.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (56.5 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

ocrd_fork_pylsd-0.0.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (51.8 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ocrd_fork_pylsd-0.0.8-cp38-cp38-macosx_10_9_x86_64.whl (20.4 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

ocrd_fork_pylsd-0.0.8-cp37-cp37m-musllinux_1_1_x86_64.whl (57.1 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

ocrd_fork_pylsd-0.0.8-cp37-cp37m-musllinux_1_1_i686.whl (51.3 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

ocrd_fork_pylsd-0.0.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (56.5 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

ocrd_fork_pylsd-0.0.8-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (51.8 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ocrd_fork_pylsd-0.0.8-cp37-cp37m-macosx_10_9_x86_64.whl (20.4 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

ocrd_fork_pylsd-0.0.8-cp36-cp36m-musllinux_1_1_x86_64.whl (57.1 kB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

ocrd_fork_pylsd-0.0.8-cp36-cp36m-musllinux_1_1_i686.whl (51.3 kB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ i686

ocrd_fork_pylsd-0.0.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (56.5 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

ocrd_fork_pylsd-0.0.8-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (51.8 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ocrd_fork_pylsd-0.0.8-cp36-cp36m-macosx_10_9_x86_64.whl (20.4 kB view hashes)

Uploaded CPython 3.6m macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page