python图像对比处理_python图像预处理库对比

Lycon

A minimal and fast image library for Python and C++.

Lycon is a small subset of optimized image operations derived from OpenCV.

Current set of features include:

Reading and writing JPEG and PNG images

Fast SIMD optimized image resizing

Zero-copy interop with NumPy whenever possible

Tested on:

Linux (Ubuntu 14.04) with Python2.7.6 and 3.5.2.

macOS (Sierra, 10.12) with Python 2.7.11 and 3.5.1.

Install

pip install lycon

Native extension dependencies:

CMake 2.8 or newer

C++ toolchain

LibJPEG

LibPNG

Ubuntu

Single-line command for installing all dependencies:

sudo apt-get install cmake build-essential libjpeg-dev libpng-dev

Anaconda

When working within an Anaconda Python distribution, it is recommended to use the latest cmake version (3.6 or newer). Older versions can lead to a mismatch between the libpng and libjpeg headers used to build Lycon (usually the system headers), and the linked library (which may be preempted by the Anaconda-scoped version). To install the latest cmake version:

conda install cmake

Example

import lycon

# Load an image as a numpy array

img = lycon.load('mittens.jpg')

# Resize the image using bicubic interpolation

resized = lycon.resize(img, width=256, height=512, interpolation=lycon.Interpolation.CUBIC)

# Crop the image (like any regular numpy array)

cropped = resized[:100, :200]

# Save the image

lycon.save('cropped-mittens.png', cropped)

Limitations

Compared to other image processing libraries (OpenCV, pillow, scikit-image), Lycon offers a very limited set of operations. Intended usages include data loaders for deep learning, mass image resizing, etc.

Advantages over OpenCV

Drastically smaller (at the cost of drastically fewer features)

Python module installable via pip

Images use the more common RGB ordering (vs OpenCV’s BGR)

However, if you already have OpenCV installed, Lycon’s advantages are minimal.

Advantages over PIL(low)

Faster

First-class NumPy support

Full support for floating point images

Advantages over Scikit-Image

Drastically faster

Benchmarks

The table below lists execution time (in seconds), averaged across 10 runs

The multiplier next to the time is the relative slowdown compared to Lycon

Operation

Lycon

OpenCV

PIL

Scikit-Image

Upsample: Nearest

0.1944

0.1948 (1x)

2.1342 (11x)

30.8982 (158.9x)

Upsample: Bilinear

0.4852

0.4940 (1x)

7.2940 (15x)

45.9095 (94.6x)

Upsample: Bicubic

1.8162

1.8182 (1x)

8.9589 (4.9x)

120.1645 (66.1x)

Upsample: Lanczos

4.5641

4.5714 (1x)

10.7517 (2.3x)

Upsample: Area

0.4801

0.4931 (1x)

Downsample: Nearest

0.0183

0.0181 (1x)

0.4379 (24.2x)

3.6101 (199.9x)

Downsample: Bilinear

0.0258

0.0257 (1x)

1.3122 (51x)

4.8487 (188.4x)

Downsample: Bicubic

0.1324

0.1329 (1x)

1.8153 (13.7x)

9.4905 (71.6x)

Downsample: Lanczos

0.3317

0.3328 (1x)

2.4058 (7.2x)

Downsample: Area

0.0258

0.0259 (1x)

Read: JPG

0.3409

0.5085 (1.5x)

1.4081 (4.1x)

1.4628 (4.3x)

Read: PNG

1.2114

1.3245 (1.1x)

1.8274 (1.5x)

1.8674 (1.5x)

Write: JPG

0.4760

0.6046 (1.3x)

2.3823 (5x)

5.0159 (10.5x)

Write: PNG

2.1421

2.2370 (1x)

9.0580 (4.2x)

11.6060 (5.4x)

Blank cells indicate that the operation is not supported by the library

All operations performed on a 16k (15360 x 8640) RGB image

Tests performed on Ubuntu 14.04 running on an Intel Core i7 (Skylake)

OpenCV 3.2+ (master: a85b4b5), Pillow 4.0.0, skimage 0.12.3, Python 2.7.3

OpenCV can potentially achieve better performance with GPU implementations and proprietary libraries like Intel IPP

License

All code derived from the OpenCV project is licensed under the 3-clause BSD License.

All Lycon-specific modifications are licensed under the MIT license.

See LICENSE for further details.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值