pylsd is the python bindings for LSD - Line Segment Detector
Project description
pylsd
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
[sudo] python setup.py install
Or directly through pip
to install it:
[sudo] 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for ocrd_fork_pylsd-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 758fc14dc1a76c174397ce9dae6db1f9b3dc530b361767a9714538dd01b9bf03 |
|
MD5 | 3a35bdbe290b7b21c29f86ab83c40f1d |
|
BLAKE2b-256 | 6adf12fba60b9b3e141f515d69edd539bd066294d6b3be79b12450888819986d |
Hashes for ocrd_fork_pylsd-0.0.3-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a33d21c2cb524c3745607029b4bceba55ab6e72f6e720fd11546efd13c5efd7 |
|
MD5 | 4355465dd85b7024c006d6ff174e4fe0 |
|
BLAKE2b-256 | 498a721974593c3df85036591de8735f3767441d028edfbad17bbdb307dbd392 |