【发布时间】:2015-10-12 23:05:55
【问题描述】:
我有一堆图片(300 张 400 X 400 像素的图片),文件名如下:
- 001.bmp
- 002.bmp
- 003.bmp
- ...
首先,我尝试阅读其中一个,例如使用imread 我得到一个 (400L, 400L, 3L) 矩阵,问题是 3L(我认为是 RBG 格式),所以这里的问题是:我怎样才能读取它们并获得 (400L, 400L, 1L)我需要处理它们的矩阵吗?
其次,我尝试使用如下循环读取 300 张图像:
data = np.zeros((400,400,300))
for i in range(300):
data[:,:,i] = imread('{0}.bmp'.format(i))
但它不起作用,很可能我的代码是错误的。实际上这样做,我想将每个 (300) 图像数据 (400 X 400) 连接成 (400 X 400 X 300) 的矩阵。
尝试使用时:
data[:,:,i] = imread('{0}.bmp'.format(i))
搜索 '1.bmp' 而不是 '001.bmp',但由于列表从 000 到 299,我遇到了问题,我不能写 '00{0}.bmp'.format(i) 来完成文件名,因为两位和三位数字我得到了'0012.bmp' 或'00123.bmp' 的号码
好吧,几个小时后,我必须这样做
arrays = []
for number in range(0, 299):
numstr = str(number).zfill(3)
fname = numstr + '.bmp'
a = imread(fname, flatten=1)
arrays.append(a)
data = np.array(arrays)
这段代码运行良好。谢谢你,给我线索!
【问题讨论】:
标签: python image-processing matrix multidimensional-array concatenation