我正在使用OpenCV
将图像读入numpy.array
,它们具有以下形状。
import cv2
def readImages(path):
imgs = []
for file in os.listdir(path):
if file.endswith('.png'):
img = cv2.imread(file)
imgs.append(img)
imgs = numpy.array(imgs)
return (imgs)
imgs = readImages(...)
print imgs.shape # (100, 718, 686, 3)
每个图像具有718x686像素/尺寸。有100张图像。
我不想在718x686上工作,我想将像素合并为一个尺寸。也就是说,形状应类似于:
(100,492548,3)
。无论如何,OpenCV(或任何其他库)或Numpy中是否都允许我这样做? 最佳答案
在不修改您的阅读功能的情况下:
imgs = readImages(...)
print imgs.shape # (100, 718, 686, 3)
# flatten axes -2 and -3, using -1 to autocalculate the size
pixel_lists = imgs.reshape(imgs.shape[:-3] + (-1, 3))
print pixel_lists.shape # (100, 492548, 3)