Home > Software design >  Convert series of images into an array using OpenCV and convert the RGB array to gray scale
Convert series of images into an array using OpenCV and convert the RGB array to gray scale

Time:05-07

Hi I'm trying to convert a series of images into an array and then convert the RGB to gray scale.

In my work folder I have x number of frames.png, I need to read all this frames in an array and then convert each frame (RGB) to Gray scale.

For one frame my code is:

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)

Any idea?

CodePudding user response:

You can use os to read files from a folder. With the "endswith" function, you can extract file formats and pull them all.

Here is a working code

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)
  • Related