Привет, я пытаюсь преобразовать серию изображений в массив, а затем преобразовать RGB в шкалу серого.
В моей рабочей папке у меня есть x количество кадров.png, мне нужно прочитать все эти кадры в массиве, а затем преобразовать каждый кадр (RGB) в шкалу серого.
Для одного кадра мой код:
import numpy as np
import cv2 as cv
from PIL import Image
# Read image
Image = cv.imread('frame0.png')
# RGB to Gray Scale
GS = cv.cvtColor(Image, cv.COLOR_BGR2GRAY)
th, Gray = cv.threshold(GS, 128, 192, cv.THRESH_OTSU)
Есть идеи?
Вы можете использовать os для чтения файлов из папки. С помощью функции «endswith» вы можете извлекать форматы файлов и извлекать их все.
Вот рабочий код
import numpy as np
import cv2 as cv
import os
for file in os.listdir("/mydir"): # images folder path
if file.endswith((".png",".jpg")): # you can add formats
img = cv.imread(file)
GS = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
th, Gray = cv.threshold(GS, 128, 192, cv.THRESH_OTSU)
cv.imwrite("converted-"+file,Gray)
Наверное, я не совсем понимаю, но не имеет смысла присваивать их всем разным переменным. Вы можете прочитать изображение, которое будете использовать, с помощью "cv.imread()".
Спасибо, у меня вопрос: Могу ли я сохранить все эти новые файлы (cv.imwrite("converted-"+file,Gray)) в переменных, а затем оперировать ими?