使用 OpenCV 将一系列图像转换为数组并将 RGB 数组转换为灰度
Convert series of images into an array using OpenCV and convert the RGB array to gray scale
您好,我正在尝试将一系列图像转换为数组,然后将 RGB 转换为灰度。
在我的工作文件夹中,我有 x 个 frames.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)
您好,我正在尝试将一系列图像转换为数组,然后将 RGB 转换为灰度。
在我的工作文件夹中,我有 x 个 frames.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)