JupyterLab上写一个基于Webp的彩色图像压缩代码,并计算压缩率
时间: 2024-02-22 21:00:09 浏览: 101
图像压缩代码
4星 · 用户满意度95%
基于Webp的彩色图像压缩可以使用Python和OpenCV库来实现。以下是一个简单的代码示例:
```python
import cv2
import numpy as np
# 读入原始图像
img = cv2.imread('input.png')
# 将图像转换为RGB格式
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 将图像压缩为预设质量的Webp格式
quality = 90
_, compressed = cv2.imencode('.webp', img, [cv2.IMWRITE_WEBP_QUALITY, quality])
# 计算压缩率
original_size = img.size * img.itemsize
compressed_size = compressed.size
compression_ratio = original_size / compressed_size
print(f'压缩率:{compression_ratio:.2f}')
```
在这个代码中,我们首先使用OpenCV的imread函数读入原始图像,然后使用cvtColor函数将图像转换为RGB格式。接着,我们使用imencode函数将图像压缩为预设质量的Webp格式,并计算压缩率。
在imencode函数中,我们使用了cv2.IMWRITE_WEBP_QUALITY参数来指定Webp的压缩质量,取值范围为0到100,其中100表示最高质量,0表示最低质量。我们将质量设置为90,这通常可以提供一个不错的折衷方案,可以实现较高的压缩率和良好的图像质量。
最后,我们计算压缩率,将原始图像的大小除以压缩后图像的大小,得到一个压缩率。你可以根据你的需要调整压缩质量,以达到最佳的压缩效果。
注意,这只是一个简单的示例代码,压缩率可能会有所不同,具体取决于图像质量和压缩参数的设置。
阅读全文