cv2.imwrite
时间: 2023-10-19 20:05:58 浏览: 118
`cv2.imwrite` 是 OpenCV 中用来保存图片的函数。它接受两个参数:第一个参数是保存图片的文件名(包括文件路径),第二个参数是要保存的图片数据。可以使用 `cv2.imread` 读取一张图片,然后使用 `cv2.imwrite` 保存这张图片。
示例:
```
import cv2
# Read an image
img = cv2.imread("example.jpg")
# Save the image
cv2.imwrite("example_output.jpg", img)
```
这里有一些可用的可选参数,比如可以使用第三个参数来指定图片压缩质量。默认质量为95。
```
cv2.imwrite("example_output.jpg", img, [cv2.IMWRITE_JPEG_QUALITY, 90])
```
还有可以用来指定要保存的图片的格式,比如PNG或者BMP格式。
```
cv2.imwrite("example_output.png", img)
```
相关问题
cv2.imwrite路径名称有空格
若路径名称中有空格,需要在路径名称前后加上引号,例如:
```
path = "C:/Users/Username/Desktop/my image.png"
cv2.imwrite(path, image)
```
改为:
```
path = '"C:/Users/Username/Desktop/my image.png"'
cv2.imwrite(path, image)
```
或者:
```
path = "C:/Users/Username/Desktop/my image.png"
cv2.imwrite('"' + path + '"', image)
```
cv2.imwrite('path/to/folder/image.jpg', img)中的img格式是tensor还是numpy
`cv2.imwrite()` 函数需要的参数是一个 numpy 数组,因此在将图像保存为文件时,需要先将 PyTorch 的 tensor 转换成 numpy 数组。可以使用 `numpy()` 函数将 tensor 转换成 numpy 数组。
示例代码如下:
```python
import cv2
import torch
# 从文件中读取图像,返回的是 numpy 数组
img = cv2.imread('path/to/image.jpg')
# 将 numpy 数组转换成 tensor
tensor_img = torch.from_numpy(img)
# 对 tensor_img 进行操作,修改像素值
# 将 tensor_img 转换回 numpy 数组
numpy_img = tensor_img.numpy()
# 将 numpy 数组保存为文件
cv2.imwrite('path/to/folder/image.jpg', numpy_img)
```
在这段代码中,我们首先使用 OpenCV 的 `imread()` 函数读取图像,返回的是 numpy 数组。然后,我们将 numpy 数组转换成 PyTorch 的 tensor,对 tensor 进行操作,然后再将其转换回 numpy 数组。最后,我们将 numpy 数组使用 `imwrite()` 函数保存为文件。需要注意的是,此时的 `numpy_img` 是一个 numpy 数组,可以直接传入 `imwrite()` 函数中。
阅读全文