利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,放在桌面上,并显示出来
时间: 2024-10-21 22:02:13 浏览: 17
OpenCV获取视频的每一帧并保存为.jpg图片
`imwrite()`函数主要用于将图像数据保存到文件中,但它本身并不具备直接的图像压缩功能。如果你想要压缩图像后再保存,你需要先对图像进行压缩处理,然后再使用`imwrite`保存。在Python的OpenCV库中,可以先读取图片,然后通过`cv2.imencode`方法进行JPEG编码(压缩),最后再保存。
这是一个示例步骤:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('your_image_path.jpg')
# 设置质量参数来调整压缩程度(0-100,默认95)
quality = 80
# 使用JPEG编码并压缩图像
compressed_img_data = cv2.imencode('.jpg', img, [int(cv2.IMWRITE_JPEG_QUALITY), quality])
# 将numpy数组转换为字节并保存到桌面
compressed_file_name = 'compressed_image.jpg'
with open(compressed_file_name, 'wb') as f:
f.write(compressed_img_data.tobytes())
# 显示原图和压缩后的图
cv2.imshow('Original Image', img)
cv2.imshow('Compressed Image', compressed_img_data[..., ::-1]) # 将BGR转RGB展示
cv2.waitKey(0) # 等待用户按键,0表示无限制
# 如果需要将压缩后的图片复制到桌面上,可以使用os模块:
import os
桌面路径 = os.path.join(os.environ['USERPROFILE'], 'Desktop')
if not os.path.exists(os.path.join(desktop_path, compressed_file_name)):
os.rename(compressed_file_name, os.path.join(desktop_path, compressed_file_name))
```
阅读全文