13

i am trying to create an image file using opencv in python. when i am creating it in same folder file is created

          face_file_name = "te.jpg"
          cv2.imwrite(face_file_name, image)

but when i am trying to create it in another folder like

          face_file_name = "test\te.jpg"
          cv2.imwrite(face_file_name, image)

file is not created. can someone explain the reasons??

i even tried giving absolute path. i am using python2.7 in windows.

rlvamsi
  • 179
  • 1
  • 2
  • 11

1 Answers1

47

cv2.imwrite() will not write an image in another directory if the directory does not exist. You first need to create the directory before attempting to write to it:

import os
dirname = 'test'
os.mkdir(dirname)

From here, you can either write to the directory without changing your working directory:

cv2.imwrite(os.path.join(dirname, face_file_name), image)

Or change your working directory and omit the directory prefix, depending on your needs:

os.chdir(dirname)
cv2.imwrite(face_file_name, image)
Aurelius
  • 11,111
  • 3
  • 52
  • 69
  • 2
    Thanks a lot! Took me a long time before I realised I had to create the folder, couldn't figure out why my images wouldn't be saved :/ – The Oddler Mar 29 '16 at 15:08