upyterLab写一个测量压缩前后彩色图像的压缩率的代码
时间: 2024-02-22 17:58:04 浏览: 116
好的,以下是测量压缩前后彩色图像压缩率的代码:
```python
import os
import numpy as np
import cv2
# 读入彩色图像
img = cv2.imread('image.jpg')
# 获取图像的尺寸信息
h, w, _ = img.shape
# 获取图像的数据大小(单位:字节)
size = os.path.getsize('image.jpg')
# 压缩图像并保存
cv2.imwrite('compressed_image.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 50])
# 读入压缩后的图像
compressed_img = cv2.imread('compressed_image.jpg')
# 获取压缩后的图像的数据大小(单位:字节)
compressed_size = os.path.getsize('compressed_image.jpg')
# 计算图像的压缩率(压缩后的大小 / 原始大小)
ratio = compressed_size / size
# 输出结果
print('原始图像的压缩率为:', 1)
print('压缩后的图像的压缩率为:', ratio)
```
在上述代码中,我们先读入彩色图像,然后计算其原始的压缩率,接着使用OpenCV提供的imwrite函数对图像进行压缩,并保存压缩后的图像,然后再读入压缩后的图像,计算压缩后的压缩率,并输出结果。
需要注意的是,上述代码中计算压缩率仅仅是计算了压缩后的文件大小与原始图像数据大小的比值,并没有进行实际的压缩操作。如果需要进行压缩,可以使用OpenCV提供的imwrite函数,如上述代码中所示。
阅读全文