cv2.imwrite保存图片覆盖了前张
时间: 2023-11-09 22:59:16 浏览: 515
图片,怎么办?
如果使用cv2.imwrite保存图片时,路径和文件名相同,就会覆盖前一张图片。为了避免这种情况发生,可以在文件名中添加一个时间戳或者随机数,这样每次保存的文件名都不一样,就不会覆盖前一张图片了。
例如,可以使用以下代码生成一个带时间戳的文件名:
```python
import time
filename = time.strftime("%Y%m%d-%H%M%S") + ".jpg"
cv2.imwrite(filename, image)
```
其中,time.strftime("%Y%m%d-%H%M%S")可以生成当前时间的字符串,如20211224-124536,然后将该字符串作为文件名保存图片。每次保存时,文件名都不同,就不会覆盖前一张图片了。
相关问题
cv2.imwrite("board.png", np.array(board, dtype=np.uint8))
这行代码的作用是将`board`这个numpy数组保存为一个png格式的图片文件,文件名为`board.png`。
具体而言,`cv2.imwrite()`是OpenCV中的一个函数,用于将一个numpy数组保存为一个图像文件。该函数有两个参数:第一个参数是保存的文件名,第二个参数是要保存的numpy数组,需要使用`dtype`参数指定数据类型为`np.uint8`。
在这个例子中,`board`是一个numpy数组,它的数据类型是布尔型。因为布尔型数据不能直接保存为图像文件,所以需要将`board`转换为`np.uint8`类型的数组。然后使用`cv2.imwrite()`函数将转换后的数组保存为一个png格式的图片文件。
注意,如果文件名已经存在,`cv2.imwrite()`函数会覆盖原有的文件。如果需要避免覆盖原有文件,可以使用不同的文件名或者在保存前检查文件是否存在。
for item in glob.glob("C:\\Users\\YOLO\\UNET\\UNETextra\\" + '.png'): img = cv2.imread(item, 0) img[img == 255] = 1 os.remove(item) cv2.imwrite(item, img)这段代码是什么意思
这段代码的作用是将指定路径下的所有以 ".png" 结尾的图片文件进行处理。首先,它使用 glob 模块的 glob 函数来获取匹配路径模式的文件列表。然后,它使用 OpenCV 的 imread 函数以灰度模式读取每个图片文件,并将读取的结果保存在变量 img 中。接下来,它将图像中像素值为 255 的部分修改为 1。之后,它使用 os 模块的 remove 函数删除原始图片文件。最后,它使用 cv2 模块的 imwrite 函数将修改后的图像保存回原始文件路径中。总结来说,这段代码的目的是将指定路径下的所有 ".png" 图片文件进行二值化处理,并覆盖保存回原始文件。
阅读全文