Skip to main content

A Python package for volumetric image quality assessment.

Project description

Logo for vIQA: A cube with three slices colored in red, green and blue in one direction and three slices colored in black, gray and white in another direction.

vIQA — volumetric Image Quality Assessment


Project Status: Active – The project has reached a stable, usable state and is being actively developed. PyPI - Version PyPI - Python Version PyPI - License PyPI - Downloads Documentation GH Action Build GH Action pre-commit pre-commit.ci status Ruff Binder Contributor Covenant

Table of Contents

vIQA provides an extensive assessment suite for image quality of 2D-images or 3D-volumes as a python package. Image Quality Assessment (IQA) is a field of research that aims to quantify the quality of an image. This is usually done by comparing the image to a reference image (full-reference metrics), but can also be done by evaluating the image without a reference (no-reference metrics). The reference image is usually the original image, but can also be another image that is considered to be of high quality. The comparison is done by calculating a metric that quantifies the difference between the two images or for the image itself. These quality metrics are used in various fields, such as medical imaging, computer vision, and image processing. For example the efficiency of image compression algorithms can be evaluated by comparing the compressed image to the original image. This package implements several metrics to compare two images or volumes using different IQA metrics. In addition, some metrics are implemented that can be used to evaluate a single image or volume.

The metrics used are:

  • Peak Signal to Noise Ratio (PSNR)
  • Root Mean Square Error (RMSE)
  • Universal Quality Index (UQI) [^1]
  • Structured Similarity (SSIM) [^2]
  • Multi-Scale Structural Similarity (MS-SSIM) [^3]
  • Feature Similarity Index (FSIM) [^4]
  • Visual Information Fidelity in pixel domain (VIFp) [^5]

[!CAUTION] The calculated values for VIFp are probably not correct in this implementation. Those values should be treated with caution as further testing is required.

  • Visual Saliency Index (VSI) [^6]

[!WARNING] The original metric supports RGB images only. This implementation can work with grayscale images by copying the luminance channel 3 times.

  • Most Apparent Distortion (MAD) [^7]
  • Gradient Similarity Measure (GSM) [^8]

[!CAUTION] This metric is not yet tested. The metric should be only used for experimental purposes.

  • Contrast to Noise Ratio (CNR) [^9]
  • Signal to Noise Ratio (SNR)
  • Q-Measure [^10]

Overview

Metric Name Type Dimensional behaviour Colour Behaviour Range (different/worst - identical/best) Tested Validated Reference
PSNR Peak Signal to Noise Ratio FR 3D native ✔️ $[0, \infty)$ ✔️ ✔️
RMSE Root Mean Square Error FR 3D native ✔️ $(\infty, 0]$ ✔️ ✔️
UQI [^a] Universal Quality Index FR 3D native (✔️) [^b] $[-1, 1]$ (✔️) [^c] [^1]
SSIM Structured Similarity FR 3D native (✔️) [^b] $[-1, 1]$ [^d] ✔️ ✔️ [^2]
MS-SSIM Multi-Scale Structural Similarity FR 3D slicing $[0, 1]$ ✔️ [^3]
FSIM Feature Similarity Index FR 3D slicing ✔️ $[0, 1]$ ✔️ ✔️ [^4]
VIFp Visual Information Fidelity in pixel domain FR 3D slicing $[0, \infty)$ [^e] [^5]
VSI Visual Saliency Index FR 3D slicing ✔️ [^f] $[0, 1]$ [^6]
MAD Most Apparent Distortion FR 3D slicing $[0, \infty)$ ✔️ [^7]
GSM Gradient Similarity FR 3D native or slicing $[0, 1]$ [^8]
CNR Contrast to Noise Ratio NR 3D native $[0, \infty)$ ✔️ [^9]
SNR Signal to Noise Ratio NR 3D native ✔️ $[0, \infty)$ ✔️
Q-Measure Q-Measure NR 3D only [^g] $[0, \infty)$ [^10]

[^a]: UQI is a special case of SSIM. Also see [^2]. [^b]: The metric is calculated channel-wise for color images. The values are then averaged after weighting. [^c]: As UQI is a special case of SSIM, the validation of SSIM is also valid for UQI. [^d]: The range for SSIM is given as $[-1, 1]$, but is usually $[0, 1]$ in practice. [^e]: Normally $[0, 1]$, but can be higher than 1 for modified images with higher contrast than reference images. [^f]: The original metric supports RGB images only. This implementation can work with grayscale images by copying the luminance channel 3 times. [^g]: The Q-Measure is a special metric designed for CT images. Therefore it only works with 3D volumes.

Documentation

The API documentation can be found here.

Requirements

The following packages have to be installed:

  • matplotlib
  • nibabel
  • numpy
  • piq
  • pytorch
  • scikit-image
  • scipy
  • tqdm
  • (jupyter) if you want to use the provided notebook

Installation

Use either pip

pip install viqa

or conda

conda install -c conda-forge viqa

[!IMPORTANT] The package is currently in development and not yet available on conda-forge.

Usage

Workflow

Images are first loaded from .raw files or .mhd files and their corresponding .raw file, normalized to the chosen data range (if the parameter normalize=True is set) and then compared. The scores are then calculated and can be printed. If using paths file names need to be given with the bit depth denoted as a suffix (e.g. _8bit.raw, _16bit.mhd) and the dimensions of the images need to be given in the file name (e.g. 512x512x512). The images are assumed to be grayscale. Treatment of color images is planned for later versions. The metrics are implemented to calculate the scores for an 8-bit data range (0-255) per default. For some metrics the resulting score is different for different data ranges. When calculating several metrics for the same image, the same data range should be used for all metrics. The data range can be changed by setting the parameter data_range for each metric. This parameter primarily affects the loading behaviour of the class instances when not using the vIQA.utils.load_data function directly as described further below, but for some metrics setting the data range is necessary to calculate the score (e.g. PSNR).

Examples

Better:

import viqa
from viqa import load_data, normalize_data

## load images
file_path_img_r = 'path/to/reference_image_8bit_512x512x512.raw'
file_path_img_m = 'path/to/modified_image_8bit_512x512x512.raw'
img_r = load_data(
  file_path_img_r,
  data_range=1,
  normalize=False,
)  # data_range ignored due to normalize=False
img_m = load_data(file_path_img_m)  # per default: normalize=False
# --> both images are loaded as 8-bit images

# calculate and print RMSE score
rmse = viqa.RMSE()
score_rmse = rmse.score(img_r, img_m)  # RMSE does not need any parameters
rmse.print_score(decimals=2)

# normalize to 16-bit
img_r = normalize_data(img_r, data_range_output=(0, 65535))
img_m = load_data(img_m, data_range=65535, normalize=True)
# --> both functions have the same effect

# calculate and print PSNR score
psnr = viqa.PSNR(data_range=65535)  # PSNR needs data_range to calculate the score
score_psnr = psnr.score(img_r, img_m)
psnr.print_score(decimals=2)

# set optional parameters for MAD as dict
calc_parameters = {
    'block_size': 16,
    'block_overlap': 0.75,
    'beta_1': 0.467,
    'beta_2': 0.130,
    'luminance_function': {'b': 0, 'k': 0.02874, 'gamma': 2.2},
    'orientations_num': 4,
    'scales_num': 5,
    'weights': [0.5, 0.75, 1, 5, 6]
}

# calculate and print MAD score
mad = viqa.MAD(data_range=65535)  # MAD needs data_range to calculate the score
score_mad = mad.score(img_r, img_m, dim=2, **calc_parameters)
mad.print_score(decimals=2)

Possible, but worse (recommended only if you want to calculate a single metric):

import viqa

file_path_img_r = 'path/to/reference_image_512x512x512_16bit.raw'
file_path_img_m = 'path/to/modified_image_512x512x512_16bit.raw'

load_parameters = {'data_range': 1, 'normalize': True}
# data_range is set to 1 to normalize the images
# to 0-1 and for calculation, if not set 255 would
# be used as default for loading and calculating
# the score

psnr = viqa.PSNR(**load_parameters)  # load_parameters necessary due to direct loading by class
# also PSNR needs data_range to calculate the score
# if images would not be normalized, data_range should be
# 65535 for 16-bit images for correct calculation
score = psnr.score(file_path_img_r, file_path_img_m)
# --> images are loaded as 16-bit images and normalized to 0-1 via the `load_data` function
#     called by the score method
psnr.print_score(decimals=2)

[!TIP] It is recommended to load the images directly with the vIQA.utils.load_data function first and then pass the image arrays to the metrics functions. You can also pass the image paths directly to the metrics functions. In this case, the images will be loaded with the given parameters. This workflow is only recommended if you want to calculate a single metric.

[!IMPORTANT] The current recommended usage files are: Image_Comparison.ipynb and Image_comparison_batch.ipynb.

For more examples, see the provided Jupyter notebooks and the documentation under API Reference.

TODO

  • Add metrics
    • Add SFF/IFS
    • Add Ma
    • Add PI
    • Add NIQE
  • Add tests
    • Add tests for RMSE
    • Add tests for PSNR
    • Add tests for SSIM
    • Add tests for MSSSIM
    • Add tests for FSIM
    • Add tests for VSI
    • Add tests for VIF
    • Add tests for MAD
    • Add tests for GSM
    • Add tests for CNR
    • Add tests for SNR
    • Add tests for Q-Measure
  • Add support for different data ranges
  • Validate metrics
  • Add color image support
  • Add support for printing values
    • Add support for .txt files
    • Add support for .csv files
  • Add support for fusions
    • Add support for linear combination
    • Add support for decision fusion

Contributing

See CONTRIBUTING.md for information on how to contribute to the project and development guide for further information.

License

BSD 3-Clause

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Contacts

Lukas Behammer, lukas.behammer@fh-wels.at

References

[^1]: Wang, Z., & Bovik, A. C. (2002). A Universal Image Quality Index. IEEE SIGNAL PROCESSING LETTERS, 9(3). https://doi.org/10.1109/97.995823 [^2]: Wang, Z., Bovik, A. C., Sheikh, H. R., & Simoncelli, E. P. (2004). Image quality assessment: From error visibility to structural similarity. IEEE Transactions on Image Processing, 13(4), 600–612. https://doi.org/10.1109/TIP.2003.819861 [^3]: Wang, Z., Simoncelli, E. P., & Bovik, A. C. (2003). Multi-scale structural similarity for image quality assessment. The Thirty-Seventh Asilomar Conference on Signals, Systems & Computers, 1298–1402. https://doi.org/10.1109/ACSSC.2003.1292216 [^4]: Zhang, L., Zhang, L., Mou, X., & Zhang, D. (2011). FSIM: A feature similarity index for image quality assessment. IEEE Transactions on Image Processing, 20(8). https://doi.org/10.1109/TIP.2011.2109730 [^5]: Sheikh, H. R., & Bovik, A. C. (2006). Image information and visual quality. IEEE Transactions on Image Processing, 15(2), 430–444. https://doi.org/10.1109/TIP.2005.859378 [^6]: Zhang, L., Shen, Y., & Li, H. (2014). VSI: A visual saliency-induced index for perceptual image quality assessment. IEEE Transactions on Image Processing, 23(10), 4270–4281. https://doi.org/10.1109/TIP.2014.2346028 [^7]: Larson, E. C., & Chandler, D. M. (2010). Most apparent distortion: full-reference image quality assessment and the role of strategy. Journal of Electronic Imaging, 19 (1), 011006. https://doi.org/10.1117/1.3267105 [^8]: Liu, A., Lin, W., & Narwaria, M. (2012). Image quality assessment based on gradient similarity. IEEE Transactions on Image Processing, 21(4), 1500–1512. https://doi.org/10.1109/TIP.2011.2175935 [^9]: Desai, N., Singh, A., & Valentino, D. J. (2010). Practical evaluation of image quality in computed radiographic (CR) imaging systems. Medical Imaging 2010: Physics of Medical Imaging, 7622, 76224Q. https://doi.org/10.1117/12.844640 [^10]: Reiter, M., Weiß, D., Gusenbauer, C., Erler, M., Kuhn, C., Kasperl, S., & Kastner, J. (2014). Evaluation of a Histogram-based Image Quality Measure for X-ray computed Tomography. 5th Conference on Industrial Computed Tomography (iCT) 2014, 25-28 February 2014, Wels, Austria. e-Journal of Nondestructive Testing Vol. 19(6). https://www.ndt.net/?id=15715

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

viqa-2.0.3.tar.gz (155.7 kB view details)

Uploaded Source

Built Distributions

viqa-2.0.3-cp312-cp312-win_amd64.whl (202.6 kB view details)

Uploaded CPython 3.12 Windows x86-64

viqa-2.0.3-cp312-cp312-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

viqa-2.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (262.6 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.27+ x86-64 manylinux: glibc 2.28+ x86-64

viqa-2.0.3-cp312-cp312-macosx_13_3_x86_64.whl (146.8 kB view details)

Uploaded CPython 3.12 macOS 13.3+ x86-64

viqa-2.0.3-cp312-cp312-macosx_13_3_arm64.whl (140.5 kB view details)

Uploaded CPython 3.12 macOS 13.3+ ARM64

viqa-2.0.3-cp311-cp311-win_amd64.whl (202.6 kB view details)

Uploaded CPython 3.11 Windows x86-64

viqa-2.0.3-cp311-cp311-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

viqa-2.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (262.5 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.27+ x86-64 manylinux: glibc 2.28+ x86-64

viqa-2.0.3-cp311-cp311-macosx_13_3_x86_64.whl (146.7 kB view details)

Uploaded CPython 3.11 macOS 13.3+ x86-64

viqa-2.0.3-cp311-cp311-macosx_13_3_arm64.whl (140.5 kB view details)

Uploaded CPython 3.11 macOS 13.3+ ARM64

File details

Details for the file viqa-2.0.3.tar.gz.

File metadata

  • Download URL: viqa-2.0.3.tar.gz
  • Upload date:
  • Size: 155.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for viqa-2.0.3.tar.gz
Algorithm Hash digest
SHA256 89cc36a2e9f45d63ba5861d4643a8326068c1803bd638dba7b2e9c98edab527e
MD5 270853e32a34b81bccbe039ad0c89d5c
BLAKE2b-256 aa41b3dc3159114edbb2948455a3b5903b3f74922c14a0fdb1f658a214aac8e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for viqa-2.0.3.tar.gz:

Publisher: GitHub
  • Repository: 3dct/vIQA
  • Workflow: release.yaml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: viqa-2.0.3.tar.gz
    • Subject digest: 89cc36a2e9f45d63ba5861d4643a8326068c1803bd638dba7b2e9c98edab527e
    • Transparency log index: 145157312
    • Transparency log integration time:

File details

Details for the file viqa-2.0.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: viqa-2.0.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 202.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for viqa-2.0.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f7afdcc4a24abdd7d95df44471c8e8d20c09e5c952d3a5ff783e3f175d4009ab
MD5 92a56a70ae07c59da0264fb77cd60ac7
BLAKE2b-256 c98980366d3e2f3fad9ebda901ec5284426f27aa1599a29fcea6f9c0f6a546bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for viqa-2.0.3-cp312-cp312-win_amd64.whl:

Publisher: GitHub
  • Repository: 3dct/vIQA
  • Workflow: release.yaml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: viqa-2.0.3-cp312-cp312-win_amd64.whl
    • Subject digest: f7afdcc4a24abdd7d95df44471c8e8d20c09e5c952d3a5ff783e3f175d4009ab
    • Transparency log index: 145157325
    • Transparency log integration time:

File details

Details for the file viqa-2.0.3-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for viqa-2.0.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 267483dc0b5a222c7a3d96c211f7981558c54709346e7629da8875e1500e8f3b
MD5 006fa4d5950e46fc1c562d04d662f943
BLAKE2b-256 91a62c20ed86be472a304b6d9a5e5b88ba15a318473c1feac43c3528a040a221

See more details on using hashes here.

Provenance

The following attestation bundles were made for viqa-2.0.3-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: GitHub
  • Repository: 3dct/vIQA
  • Workflow: release.yaml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: viqa-2.0.3-cp312-cp312-musllinux_1_2_x86_64.whl
    • Subject digest: 267483dc0b5a222c7a3d96c211f7981558c54709346e7629da8875e1500e8f3b
    • Transparency log index: 145157317
    • Transparency log integration time:

File details

Details for the file viqa-2.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for viqa-2.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f88e66b6bfae4aa1d9c39ad3912202b3f2da2bf3f47f84cca6125fa011426d5b
MD5 43a7bcd08b8b32b114c646b219190e83
BLAKE2b-256 38884054c84d75e2d86d1f860f411ec16ab430bf09554ae5dee13cd22609c024

See more details on using hashes here.

Provenance

The following attestation bundles were made for viqa-2.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: GitHub
  • Repository: 3dct/vIQA
  • Workflow: release.yaml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: viqa-2.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
    • Subject digest: f88e66b6bfae4aa1d9c39ad3912202b3f2da2bf3f47f84cca6125fa011426d5b
    • Transparency log index: 145157353
    • Transparency log integration time:

File details

Details for the file viqa-2.0.3-cp312-cp312-macosx_13_3_x86_64.whl.

File metadata

File hashes

Hashes for viqa-2.0.3-cp312-cp312-macosx_13_3_x86_64.whl
Algorithm Hash digest
SHA256 e015d2fbaea185a79f4ed9dbee9cdbeb53381ce7e2520295f953ad1ab203f8a1
MD5 5339dfdcb386f124ac2a4ac4c57c1c76
BLAKE2b-256 580a7477a015c73c28e90ff27c642ba7c1c9881bbfa3a130250cd6210aa07d86

See more details on using hashes here.

Provenance

The following attestation bundles were made for viqa-2.0.3-cp312-cp312-macosx_13_3_x86_64.whl:

Publisher: GitHub
  • Repository: 3dct/vIQA
  • Workflow: release.yaml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: viqa-2.0.3-cp312-cp312-macosx_13_3_x86_64.whl
    • Subject digest: e015d2fbaea185a79f4ed9dbee9cdbeb53381ce7e2520295f953ad1ab203f8a1
    • Transparency log index: 145157337
    • Transparency log integration time:

File details

Details for the file viqa-2.0.3-cp312-cp312-macosx_13_3_arm64.whl.

File metadata

File hashes

Hashes for viqa-2.0.3-cp312-cp312-macosx_13_3_arm64.whl
Algorithm Hash digest
SHA256 7972260b3f0b09cf050d37b580b6f612ef5ff9711a5ff468041789e4e2951edd
MD5 c51b4e76484c6a3d4f031c643e36fe9f
BLAKE2b-256 c940bcf4baeb4607df18e67ea5da11942169c1916e66088de9ade05802ffd47d

See more details on using hashes here.

Provenance

The following attestation bundles were made for viqa-2.0.3-cp312-cp312-macosx_13_3_arm64.whl:

Publisher: GitHub
  • Repository: 3dct/vIQA
  • Workflow: release.yaml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: viqa-2.0.3-cp312-cp312-macosx_13_3_arm64.whl
    • Subject digest: 7972260b3f0b09cf050d37b580b6f612ef5ff9711a5ff468041789e4e2951edd
    • Transparency log index: 145157357
    • Transparency log integration time:

File details

Details for the file viqa-2.0.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: viqa-2.0.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 202.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for viqa-2.0.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b3a8f446fc1a593f11960ad411c6d41dc0ab66747227e48ef902d10d0ee4b6db
MD5 543ea2ce7673483673e34fae1a96a7b8
BLAKE2b-256 aaad6778e199ea61740568993126dcc6f9be9ecc12f9b09b4e77186c5f0ba97d

See more details on using hashes here.

Provenance

The following attestation bundles were made for viqa-2.0.3-cp311-cp311-win_amd64.whl:

Publisher: GitHub
  • Repository: 3dct/vIQA
  • Workflow: release.yaml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: viqa-2.0.3-cp311-cp311-win_amd64.whl
    • Subject digest: b3a8f446fc1a593f11960ad411c6d41dc0ab66747227e48ef902d10d0ee4b6db
    • Transparency log index: 145157332
    • Transparency log integration time:

File details

Details for the file viqa-2.0.3-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for viqa-2.0.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2bdf6a76e6c778cf6c3aefc988cf42f6468e93b4e498cb77570f4ce2f4e0f5b6
MD5 d9feafc5dbb8815f4b5390663af3b1cd
BLAKE2b-256 9d387f4cd71ff61ced433488b1575c243bd1ea55f6270c45ae0e732b5b2a9415

See more details on using hashes here.

Provenance

The following attestation bundles were made for viqa-2.0.3-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: GitHub
  • Repository: 3dct/vIQA
  • Workflow: release.yaml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: viqa-2.0.3-cp311-cp311-musllinux_1_2_x86_64.whl
    • Subject digest: 2bdf6a76e6c778cf6c3aefc988cf42f6468e93b4e498cb77570f4ce2f4e0f5b6
    • Transparency log index: 145157363
    • Transparency log integration time:

File details

Details for the file viqa-2.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for viqa-2.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1e3fdb92d2a2582bc8e6a8f49568fa09a0050f2a9acaec63e74c44eb6e919b73
MD5 3854d70f554f7ed72b698879d09935ca
BLAKE2b-256 859f540a1ad9aa963bbbdfac5fab47a91add8a03e770e8f4118dfb76d9ec4c09

See more details on using hashes here.

Provenance

The following attestation bundles were made for viqa-2.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: GitHub
  • Repository: 3dct/vIQA
  • Workflow: release.yaml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: viqa-2.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
    • Subject digest: 1e3fdb92d2a2582bc8e6a8f49568fa09a0050f2a9acaec63e74c44eb6e919b73
    • Transparency log index: 145157368
    • Transparency log integration time:

File details

Details for the file viqa-2.0.3-cp311-cp311-macosx_13_3_x86_64.whl.

File metadata

File hashes

Hashes for viqa-2.0.3-cp311-cp311-macosx_13_3_x86_64.whl
Algorithm Hash digest
SHA256 107ee42f68642163064e76fcf7986216761ec823017b1ccff592413da7c2d913
MD5 48782f443432a9b50dfa237bc830e411
BLAKE2b-256 f371e95b8f4c1c8990a94857e00131027a567ce2b37f0adf3d380d2351999375

See more details on using hashes here.

Provenance

The following attestation bundles were made for viqa-2.0.3-cp311-cp311-macosx_13_3_x86_64.whl:

Publisher: GitHub
  • Repository: 3dct/vIQA
  • Workflow: release.yaml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: viqa-2.0.3-cp311-cp311-macosx_13_3_x86_64.whl
    • Subject digest: 107ee42f68642163064e76fcf7986216761ec823017b1ccff592413da7c2d913
    • Transparency log index: 145157348
    • Transparency log integration time:

File details

Details for the file viqa-2.0.3-cp311-cp311-macosx_13_3_arm64.whl.

File metadata

File hashes

Hashes for viqa-2.0.3-cp311-cp311-macosx_13_3_arm64.whl
Algorithm Hash digest
SHA256 d645378f158d3c0f07107aee37af3d64d3789976795b99bd7b226751701ada96
MD5 30ad020dc5711a1afadabc2e319ec8dd
BLAKE2b-256 063c621a34e83290fc5c46070672b1b6e99f990971e9c4a1ca1e184f42293f0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for viqa-2.0.3-cp311-cp311-macosx_13_3_arm64.whl:

Publisher: GitHub
  • Repository: 3dct/vIQA
  • Workflow: release.yaml
Attestations:
  • Statement type: https://in-toto.io/Statement/v1
    • Predicate type: https://docs.pypi.org/attestations/publish/v1
    • Subject name: viqa-2.0.3-cp311-cp311-macosx_13_3_arm64.whl
    • Subject digest: d645378f158d3c0f07107aee37af3d64d3789976795b99bd7b226751701ada96
    • Transparency log index: 145157343
    • Transparency log integration time:

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