OpenCV - 将图像保存到所选的特定文件夹

Hie*_*ung 11 python opencv image-processing

我正在学习OpenCV和Python.我从网络摄像头中捕获了一些图像并将其保存.但它们默认保存在本地文件夹中.我想将它们从直接路径保存到另一个文件夹.我如何解决它?

Jer*_*uke 26

ebeneditos提供的解决方案非常有效.

但是,如果您有cv2.imwrite()大型代码段的几个部分,并且想要更改保存图像的路径,则必须在每次出现时cv2.imwrite()单独更改路径.

正如索尔蒂斯所说,这是一个更好的方法.声明路径并将其作为字符串传递给cv2.imwrite()

import cv2
import os
img = cv2.imread('1.jpg', 1)
path = 'D:/OpenCV/Scripts/Images'
cv2.imwrite(os.path.join(path , 'waka.jpg'), img)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

现在,如果要修改路径,只需更改path变量即可.

根据Kallz提供的解决方案进行编辑


ebe*_*tos 7

您可以使用OpenCV的功能imwrite:

import cv2
cv2.imwrite('Path/Image.jpg', image_name)
Run Code Online (Sandbox Code Playgroud)

  • 如果文件夹不存在,@Shahryar cv2.imwrite() 不会创建该文件夹。您必须检查该文件夹是否存在以及是否写入,否则使用 os.makedir() 创建它 (3认同)

Hie*_*ung 6

谢谢大家.你的方式很完美.我想分享另一种解决问题的方法.我使用该函数os.chdir(path)将本地目录更改为路径.之后我正常保存图像.


Kal*_*llz 5

Jeru Luke给出的答案仅在Windows系统上有效,如果我们尝试在另一个操作系统(Ubuntu)上运行,则它可以正常运行,但是图像保存在目标位置或路径上。

在Ubuntu和Windows中均无法使用

  import cv2
  img = cv2.imread('1.jpg', 1)
  path = '/tmp'
  cv2.imwrite(str(path) + 'waka.jpg',img)
  cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

我在上面的代码中运行,但是图像未将图像保存在目标路径上。然后我发现对于使用OS模块添加路径的一般用途,添加路径的方法是错误的。

例:

 import os
 final_path = os.path.join(path_1,path_2,path_3......)
Run Code Online (Sandbox Code Playgroud)

在Ubuntu和Windows中工作

 import cv2
 import os
 img = cv2.imread('1.jpg', 1)
 path = 'D:/OpenCV/Scripts/Images'
 cv2.imwrite(os.path.join(path , 'waka.jpg'),img)
 cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

该代码在Windows和Ubuntu上都可以正常工作:)

  • 对此见解加 1,并且没有提及它:) (2认同)