python opencv照片压缩同样的分辨率
时间: 2023-07-24 21:42:48 浏览: 183
当然可以,使用OpenCV和Python进行照片压缩同样可以实现保持相同分辨率的效果,具体代码如下:
```python
import cv2
# 读入需要压缩的图像
img = cv2.imread('input.jpg')
# 设置压缩质量参数
params = [cv2.IMWRITE_JPEG_QUALITY, 80]
# 将图像保存为JPEG格式
cv2.imwrite('output.jpg', img, params)
# 读入压缩后的图像
img_compressed = cv2.imread('output.jpg')
```
其中,80是压缩质量参数,可以根据需要进行调整,数值越大,图像质量越好,文件大小也越大。
相关问题
python opencv 打开就压缩照片
打开图片时出现压缩可能是因为图片的分辨率过高,导致显示不完整。你可以尝试使用OpenCV中的resize函数对图片进行缩放,从而适应显示区域的大小。示例代码如下:
```python
import cv2
img = cv2.imread('image.jpg')
height, width = img.shape[:2]
# 缩放图片到指定大小
new_height, new_width = 800, 600
resized_img = cv2.resize(img, (new_width, new_height))
cv2.imshow('Resized Image', resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们通过resize函数将图片缩放到指定的大小,从而避免了显示不完整的问题。你可以根据实际情况调整缩放的大小。
python opencv输出视频质量压缩
你可以使用OpenCV中的VideoWriter对象来进行视频的压缩。该对象可以接受多个参数,包括视频编解码器和压缩参数。
下面的示例代码演示了如何使用VideoWriter对象将视频压缩为H.264格式:
```python
import cv2
# 读取原始视频
cap = cv2.VideoCapture('input_video.mp4')
# 获取视频的帧率和分辨率
fps = cap.get(cv2.CAP_PROP_FPS)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 创建VideoWriter对象并设置编解码器和压缩参数
fourcc = cv2.VideoWriter_fourcc(*'H264')
out = cv2.VideoWriter('output_video.mp4', fourcc, fps, (width, height), True)
# 读取视频帧并进行压缩
while True:
ret, frame = cap.read()
if not ret:
break
# 对视频帧进行压缩
compressed_frame = cv2.resize(frame, (0,0), fx=0.5, fy=0.5, interpolation=cv2.INTER_AREA)
# 写入压缩后的视频帧
out.write(compressed_frame)
# 释放资源
cap.release()
out.release()
```
上面的代码中,我们首先从原始视频中获取帧率和分辨率,并创建一个VideoWriter对象。然后,我们使用cv2.resize函数对每个视频帧进行压缩,并将压缩后的视频帧写入输出视频中。最后,我们释放所有资源。
在上面的示例中,我们使用cv2.resize函数对视频帧进行压缩。你可以根据需要调整压缩参数和压缩方法,以获得更好的压缩效果。
阅读全文