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

时间:2017-01-11 08:55:03

标签: python opencv image-processing

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

6 个答案:

答案 0 :(得分:21)

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)

现在,如果您想修改路径,只需更改path变量。

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

答案 1 :(得分:7)

您可以使用OpenCV的函数imwrite执行此操作:

import cv2
cv2.imwrite('Path/Image.jpg', image_name)

答案 2 :(得分:5)

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

答案 3 :(得分: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)

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

示例:

 import os
 final_path = os.path.join(path_1,path_2,path_3......)

在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)

该代码在Windows和Ubuntu上均可正常运行:)

答案 4 :(得分:0)

MAC用户,如果您使用开放式简历

import cv2

cv2.imwrite('path_to_folder/image.jpg',image)

答案 5 :(得分:0)

您可以通过增加计数来循环使用此简单代码

cv2.imwrite(“ C:\ Sharat \ Python \ Images \ frame%d.jpg”%计数,图像

图像将通过名称行frame0.jpg,frame1.jpg frame2.jpg等保存在文件夹中。