मैंने कई छवि फ़ाइलों को फ़्लिप करने और इसे किसी अन्य फ़ोल्डर में सहेजने के लिए एक साधारण पायथन प्रोग्राम बनाया है। मेरे पास जो समस्या है वह यह है कि फाइल क्रमांकन को नजरअंदाज करते हुए फाइलों को एक सरणी में लोड किया जाता है, इस प्रकार आउटपुट फाइलों का मूल फ़ाइल (0.jpg और 1.jpg को छोड़कर) के समान नामकरण नहीं होता है।

Original picture and flipped picture comparison

नीचे वह कोड है जिसका उपयोग मैं छवियों को फ़्लिप करने के लिए करता हूं।

# import modules
from tqdm import tqdm
import numpy as np
import glob
import cv2

# directory path to images
training_images = glob.glob("original_images/*.jpg")
# load the images into an array
image_array = np.array([cv2.imread(file) for file in training_images])
# find how many contents exist inside the array
array_length = np.size(image_array)

# flip the images and save to flipped_images/ folder
for x in range(array_length):

    number = str(x)
    flipped = np.flip(image_array[x], 1)
    cv2.imwrite('flipped_images/' + number + '.jpg', flipped)

मेरे लिए यह सुनिश्चित करने का कोई तरीका है कि फ़ाइल नाम के अनुसार डेटा अनुक्रम में लोड किया गया है? अग्रिम में धन्यवाद।

0
ヲヲヲ 5 अक्टूबर 2018, 14:41

1 उत्तर

सबसे बढ़िया उत्तर

इनपुट नाम से आउटपुट नाम क्यों नहीं बनाते?

# import modules
from tqdm import tqdm
import numpy as np
import glob
import cv2

# directory path to images
training_images = glob.glob("original_images/*.jpg")

for filename in training_images:
  image = np.array(cv2.imread(filename))
  flipped = np.flip(image, 1)
  out_path = filename.replace("original_images","flipped_images")
  cv2.imwrite(out_path, flipped)
1
Dschoni 5 अक्टूबर 2018, 12:35