在jupyter notebooks上将一张灰度图像进行JPEG图像压缩,并计算压缩率
时间: 2023-07-25 14:15:47 浏览: 138
下面是将一张灰度图像进行JPEG图像压缩,并计算压缩率的代码:
```python
import cv2
import os
# 读取灰度图像
img = cv2.imread('gray_image.jpg', 0)
# 设置JPEG压缩参数
encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), 90]
# 进行JPEG压缩
result, compress_img = cv2.imencode('.jpg', img, encode_param)
# 计算压缩率
original_size = os.path.getsize('gray_image.jpg')
compress_size = compress_img.size
compression_ratio = original_size / compress_size
# 解码压缩图像
decompress_img = cv2.imdecode(compress_img, 0)
# 显示压缩前后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Compressed Image', decompress_img)
print('Compression Ratio:', compression_ratio)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先使用OpenCV库读取一张灰度图像。然后,我们设置JPEG压缩参数,这里我们选择压缩质量为90。接着,我们使用OpenCV库的imencode函数将灰度图像编码为JPG格式,并获取压缩图像的数据。然后,我们计算压缩率,并将其打印出来。最后,我们使用OpenCV库的imdecode函数将压缩图像解码为灰度图像,并显示压缩前后的图像。
需要注意的是,在计算压缩率时,我们假设原始图像文件的大小就是图像数据的大小,这在实际应用中可能不是完全准确的。此外,压缩率的计算结果仅供参考,实际压缩率可能会因压缩参数、压缩算法、图像内容等因素而有所不同。
阅读全文