Skip to main content

Calculate the sharpness of an image with the CPBD metric (Python 3.12+ compatible)

Project description

About

CPBD is a perceptual-based no-reference objective image sharpness metric based on the cumulative probability of blur detection developed at the Image, Video and Usability Laboratory of Arizona State University.

[The metric] is based on the study of human blur perception for varying contrast values. The metric utilizes a probabilistic model to estimate the probability of detecting blur at each edge in the image, and then the information is pooled by computing the cumulative probability of blur detection (CPBD).

This software is a Python port of the reference MATLAB implementation. To approximate the behaviour of MATLAB’s proprietary implementation of the Sobel operator, it uses an implementation inspired by GNU Octave.

References

CPBD is described in detail in the following papers:

Credits

If you publish research results using this code, I kindly ask you to reference the papers of the original authors of the metric as stated in the previous section as well as their reference implementation in your bibliography. See also the copyright statement of the reference implementation in the license file. Thank you!

Installation

$ pip install cpbd

Usage

In [1]: import cpbd

In [2]: from scipy import ndimage

In [3]: input_image = ndimage.imread('/tmp/LIVE_Images_GBlur/img4.bmp', mode='L')

In [4]: cpbd.compute(input_image)
Out[4]: 0.75343203230148048

Development

$ git clone git@github.com:0x64746b/python-cpbd.git
Cloning into 'python-cpbd'...
$ cd python-cpbd
$ pip install -U '.[dev]'

To quickly run the tests with the invocation interpreter:

$ python setup.py test

To test the library under different interpreters:

$ tox

Performance

The following graph visualizes the accuracy of this port in comparison with the reference implementation when tested on the images of the LIVE database:

Performance on LIVE database

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

cpbd_py312-1.0.0.tar.gz (370.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cpbd_py312-1.0.0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file cpbd_py312-1.0.0.tar.gz.

File metadata

  • Download URL: cpbd_py312-1.0.0.tar.gz
  • Upload date:
  • Size: 370.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for cpbd_py312-1.0.0.tar.gz
Algorithm Hash digest
SHA256 39ecdf3035500ae85808d731cc6665fb102ebd82ed73c6d3b4cb189413202c63
MD5 d5c04b538f65e70ef0a5cfd4ab0f700b
BLAKE2b-256 bfaed7293dee0f89b7f725a19d7b207f508d08ce6e258b66552dcc29cd4ee954

See more details on using hashes here.

File details

Details for the file cpbd_py312-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: cpbd_py312-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for cpbd_py312-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b6e4e346513525be8df452a2f0b10ff1150abc80982034b11a455e4fb8073b1
MD5 37998a13f3e41882cf66a1bced6d7d51
BLAKE2b-256 cceb8558ea98b0e11d57ad36d8d6a7515a156c5bc3ea30345ad4b38c2b249b0a

See more details on using hashes here.

Supported by

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