Есть ли способ прочитать первые N изображений, выполнить операции и прочитать следующие N изображений из папки, содержащей несколько изображений в Python - PullRequest
0 голосов
/ 22 апреля 2020

Я работаю с алгоритмом обработки изображений, который включает триплет изображений для сравнения ошибок. Я запутался в базовом шаге c чтения набора из 3 изображений из папки, выполняя некоторые операции, такие как извлечение функций и чтение следующего набор из 3 изображений для выполнения операции и т. д.

Я написал код для извлечения первых 3 изображений из 1500 изображений. Чтобы выполнить извлечение объектов, мне нужно собрать триплет изображений вместе в качестве входных данных для алгоритма, извлечь объекты и сохранить их в матрице. Когда я извлекаю объекты из 3 изображений вместе, мне нужно получить матрицу объектов 3 * 37, при условии, что у меня есть 37 объектов. Как получить матрицу объектов для всех изображений?


imageDir_meas = #specify your path here
image_path_list = []
valid_image_extensions = [".jpg", ".jpeg", ".png", ".tif", ".tiff"] #specify your vald extensions here
valid_image_extensions = [item.lower() for item in valid_image_extensions]

#create a list all files in directory and
#append files with a vaild extention to image_path_list

for file in os.listdir(imageDir_meas):
    extension = os.path.splitext(file)[1]
     if extension.lower() not in valid_image_extensions:
        continue
    image_path_list.append(os.path.join(imageDir_meas, file))

for imagePath in image_path_list[:3]:
    image = cv2.imread(imagePath)

    # display the image on screen with imshow()
    # after checking that it loaded
    if image is not None:
        cv2.imshow(imagePath, image)
    elif image is None:
        print ("Error loading: " + imagePath)
        #end this loop iteration and move on to next image
        continue
    key = cv2.waitKey(0)
    if key == 27: # escape
        break
cv2.destroyAllWindows()

1 Ответ

1 голос
/ 23 апреля 2020
n_input = 3 # your algorithm needs 3 images
image_path_list_sub = [image_path_list[x:x+n_input] for x in range(0, len(image_path_list), n_input)]
for imagePath in image_path_list_sub:
    if len(imagePath) == 3:
        img0 = cv2.imread(imagePath[0])
        img1 = cv2.imread(imagePath[1])
        img2 = cv2.imread(imagePath[2])
        # your_algorithm(img0, img1, img2)
    else:
        continue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...