cv2.imwrite 控制图片大小
时间: 2023-08-19 13:08:49 浏览: 454
在使用 OpenCV 的 `cv2.imwrite()` 函数保存图片时,可以通过调整图片的大小来控制图片的大小。具体的方法是使用 `cv2.resize()` 函数来调整图片的尺寸,然后再通过 `cv2.imwrite()` 函数保存调整后的图片。
以下是一个示例代码,将原始图片的大小调整为 500x500,然后保存为新的图片。
```python
import cv2
# 读取原始图片
img = cv2.imread('example.jpg')
# 调整图片大小
img_resized = cv2.resize(img, (500, 500))
# 保存调整后的图片
cv2.imwrite('example_resized.jpg', img_resized)
```
在这个示例中,我们使用 `cv2.imread()` 函数读取了原始图片,然后使用 `cv2.resize()` 函数将图片的大小调整为 500x500,并将调整后的图片保存到 `example_resized.jpg` 文件中。你可以根据需要调整图片的大小和保存的文件名。
相关问题
如何cv2.imwrite写入图片占空间更小
您可以尝试对图像进行压缩以减少文件大小。在 cv2.imwrite() 中设置参数来控制图像质量,例如将格式参数为 JPEG,同时在参数列表中指定 JPEG 质量(0-100),以减小文件大小。 这将在一定程度上牺牲图像的清晰度和质量,但可以在磁盘空间的限制下使用。 另外,您还可以减小图像的尺寸或进行额外的处理以减少文件大小。
cv2.imwrite dpi参数
`cv2.imwrite()`函数是OpenCV库中用于保存图像到文件的函数,其中dpi参数并不是直接提供的选项。DPI(dots per inch)通常用于描述打印分辨率,但在保存图片时,OpenCV并不直接支持设置dpi。然而,如果你需要控制图像在保存时的实际尺寸,你可以通过调整`width`和`height`参数来间接达到类似的效果。
例如,如果你想让图片以特定的宽度和高度保存,可以先计算出对应的像素数,然后除以你想要的英寸数来得到实际的dpi值。假设你想将宽度设为800像素,高度设为600像素,并且目标尺寸是8x6英寸(即480dpi),可以这样做:
```python
import cv2
import numpy as np
# 图像数据
img = ... # 你的图像数组
# 目标尺寸 (英寸)
target_width_in_inches = 8
target_height_in_inches = 6
# 计算所需的像素大小
desired_dpi = 480 # 假设你想要480dpi
image_width_pixels = target_width_in_inches * desired_dpi
image_height_pixels = target_height_in_inches * desired_dpi
# 保持宽高比不变
aspect_ratio = img.shape[1] / img.shape[0]
target_height_pixels = int(image_width_pixels / aspect_ratio)
# 保存图片
cv2.imwrite('output.jpg', cv2.resize(img, (int(image_width_pixels), int(target_height_pixels)), interpolation=cv2.INTER_LINEAR))
```
阅读全文