压缩前的彩色图像为0.jpg,压缩后的彩色图像为1.jpg,JupyterLab写一个怎么计算压缩率的代码
时间: 2024-02-22 20:58:13 浏览: 23
首先,我们需要计算压缩前和压缩后的文件大小。可以使用Python的os库来获取文件大小,示例如下:
```python
import os
# 获取压缩前文件大小
original_size = os.path.getsize('0.jpg')
# 获取压缩后文件大小
compressed_size = os.path.getsize('1.jpg')
```
接着,我们可以使用以下公式计算压缩率:
```python
compression_ratio = (1 - compressed_size / original_size) * 100
```
最后,我们可以输出压缩率:
```python
print(f"压缩率为:{compression_ratio:.2f}%")
```
完整代码如下:
```python
import os
# 获取压缩前文件大小
original_size = os.path.getsize('0.jpg')
# 获取压缩后文件大小
compressed_size = os.path.getsize('1.jpg')
# 计算压缩率
compression_ratio = (1 - compressed_size / original_size) * 100
# 输出结果
print(f"压缩率为:{compression_ratio:.2f}%")
```
注意,这里的压缩率计算方式是以文件大小为基准的,不一定代表图像压缩效果的好坏。如果想要更准确地评估图像压缩效果,可以使用其他指标,比如PSNR、SSIM等。
相关问题
JupyterLab写一个测量两张jpg格式的彩色图像的压缩率的代码
好的,以下是测量两张JPG格式彩色图像压缩率的代码:
```python
import os
import numpy as np
import cv2
# 读入两张彩色图像
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
# 获取两张图像的尺寸信息
h1, w1, _ = img1.shape
h2, w2, _ = img2.shape
# 获取两张图像的数据大小(单位:字节)
size1 = os.path.getsize('image1.jpg')
size2 = os.path.getsize('image2.jpg')
# 计算两张图像的压缩率(压缩后的大小 / 原始大小)
ratio1 = size1 / (h1 * w1 * 3)
ratio2 = size2 / (h2 * w2 * 3)
# 输出结果
print('image1.jpg 的压缩率为:', ratio1)
print('image2.jpg 的压缩率为:', ratio2)
```
需要注意的是,上述代码中计算压缩率仅仅是计算了压缩后的文件大小与原始图像数据大小的比值,并没有进行实际的压缩操作。如果需要进行压缩,可以使用OpenCV提供的imwrite函数,如下所示:
```python
# 压缩图像并保存
cv2.imwrite('compressed_image1.jpg', img1, [cv2.IMWRITE_JPEG_QUALITY, 50])
cv2.imwrite('compressed_image2.jpg', img2, [cv2.IMWRITE_JPEG_QUALITY, 50])
```
在上述代码中,[cv2.IMWRITE_JPEG_QUALITY, 50]表示使用JPEG格式进行压缩,并设置压缩质量为50。可以根据实际需求调整压缩质量参数。
JupyterLab上写一个基于Webp的jpg格式的彩色图像压缩代码,并计算压缩率
首先,需要安装Python下的WebP库,可以使用以下命令进行安装:
```
!pip install webp
```
接下来,可以使用以下代码来实现基于WebP的JPEG彩色图像压缩,并计算压缩率:
```python
from PIL import Image
import numpy as np
import webp
# 加载图像
img = Image.open('example.jpg')
# 转换为numpy数组
img_arr = np.array(img)
# 压缩图像
webp_data = webp.WebPEncode(img_arr, img.size[0], img.size[1], 80)
# 计算压缩率
original_size = img.size[0] * img.size[1] * 3
compressed_size = len(webp_data)
compression_ratio = original_size / compressed_size
print('Compression ratio:', compression_ratio)
```
其中,`example.jpg`是你要压缩的彩色图像文件,`80`是WebP压缩质量参数,取值范围为0-100,值越高图像质量越好,但文件大小也越大。计算出的`compression_ratio`即为压缩率。