reissvd_imgcompress
A Python package for image compression using the REIS-SVD algorithm. This package helps in reducing the size of images while preserving quality, and also provides various metrics for evaluating compression quality, including MSE, PSNR, and SSIM.
Update
- Remove the limitation on k: The code allows k to exceed the total number of singular values and sets k to the maximum available value if necessary to avoid errors.
- Improve the precision of the Sylvester equation: Increase
max_iterto 50 iterations and reducetolto 1e-6, which allows for a more accurate solution of the equation.
Features
- Compress grayscale images using REIS-SVD.
- Compute compression metrics:
- Compression Ratio (CR)
- Mean Squared Error (MSE)
- Peak Signal-to-Noise Ratio (PSNR)
- Structural Similarity Index (SSIM)
- Visualize compressed images with different singular values.
Installation
To install the package, first clone the repository or download the code, then navigate to the package directory and run:
pip install .
Usage
from reissvd_imgcompress import (
rgb2gray, reis_svd, compute_metrics, plot_compressed_images
)
import numpy as np
from PIL import Image
# Load an image and convert it to grayscale
image = np.array(Image.open('sample_image.png'))
gray_image = rgb2gray(image) # If grayscale conversion is not needed, you can skip this step.
# Define singular value counts for testing
k_values = [1, 2, 5, 10, 20, 50, 100, 200, 500]
# Iterate over k_values, compress images, and compute metrics
for k in k_values:
compressed = reis_svd(gray_image, k)
CR, mse, psnr, ssim_index = compute_metrics(gray_image, compressed, k)
print(f"k={k}: CR={CR:.2f}, MSE={mse:.2f}, PSNR={psnr:.2f} dB, SSIM={ssim_index:.4f}")
# Plot compressed images for visual comparison
plot_compressed_images(gray_image, k_values)
Release files for reissvd-imgcompress 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| reissvd_imgcompress-0.2.0.tar.gz | 4.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| reissvd_imgcompress-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.7 kB
Release files / reissvd_imgcompress-0.2.0.tar.gz
| Download URL | reissvd_imgcompress-0.2.0.tar.gz |
|---|---|
| Size | 4.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1b9ffdf47b099a3866a960c16a4697e5a6738232aa778142b35604ce954022ce
|
|
BLAKE2b-256 checksum How to use checksums |
ebd12de8b5443d1cd54c5e7699831f2de52f845af5f06814ba6aeaf8c66fbf31
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.7
|
Release files / reissvd_imgcompress-0.2.0-py3-none-any.whl
| Download URL | reissvd_imgcompress-0.2.0-py3-none-any.whl |
|---|---|
| Size | 5.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1941990c085e7e47071dfae7ebe49ca5c2a9b852f41c79cd31cfd0794c084ae2
|
|
BLAKE2b-256 checksum How to use checksums |
9fb5d6479541ced12ea0182a00a211cfbafaf0d5865e745dcf80b183d8143691
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.7
|