Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以在imread中使用变量名吗?Python中的基本问题_Python_Loops_Numpy - Fatal编程技术网

可以在imread中使用变量名吗?Python中的基本问题

可以在imread中使用变量名吗?Python中的基本问题,python,loops,numpy,Python,Loops,Numpy,我的问题其实很简单 我的计算机上有100个图像,这些图像称为1.ppm 2.ppm,依此类推直到100.ppm 我想使用imread将每个图像读取到一个变量,然后执行一些操作。我想对所有的图像做完全相同的事情 我的问题是-不需要一百次的复制粘贴,可以在循环中使用imread吗?比如: for i in range(1,100): X=io.imread('/home/oria/Desktop/more pics/'i'.ppm') 我不想复制粘贴同一个代码块,而只是将图片编号更改一百次

我的问题其实很简单

我的计算机上有100个图像,这些图像称为1.ppm 2.ppm,依此类推直到100.ppm

我想使用imread将每个图像读取到一个变量,然后执行一些操作。我想对所有的图像做完全相同的事情

我的问题是-不需要一百次的复制粘贴,可以在循环中使用imread吗?比如:

for i in range(1,100):
    X=io.imread('/home/oria/Desktop/more pics/'i'.ppm')
我不想复制粘贴同一个代码块,而只是将图片编号更改一百次,而是希望在循环中执行此操作。 我对numpy.load也有类似的问题。我想将名为ICA1 ICA2等的文件加载到ICA100。有可能写出这样的东西吗

numpy.load('/home/oria/Desktop/ICA DB/ICA'i.npy)

如下所示:

for i in range(1,100):
    X=io.imread('/home/oria/Desktop/more pics/%s.ppm' %(i))
或者,像这样:

for i in range(1,100):
    X=io.imread('/home/oria/Desktop/more pics/'+str(i)+'.ppm')

请继续阅读上的文章以及上的这篇简单文章。如果我正确理解您的要求,可以这样做:

for i in range(1, 101):
    x = io.imread('/home/oria/Desktop/more pics/' + str(i) + '.ppm')

请注意,
range
函数的高端不包括在内,因此使用
range(1100)
只会产生1,2,3…99。还请注意,必须将
i
转换为字符串,否则您将收到
TypeError:无法连接'str'和'int'对象

只需使用
str.format
,传递变量
i

import cv2
import os

def load_images_from_folder(folder):
    images = []
    for filename in os.listdir(folder):
        img = cv2.imread(os.path.join(folder,filename))
        if img is not None:
            images.append(img)
    return images
for i in range(1,100):
     X = io.imread('/home/oria/Desktop/more pics/{}.ppm'.format(i))
如果要使用numpy加载,请再次执行相同的操作:

for i in range(1,100):
    X = numpy.load('/home/oria/Desktop/ICA DB/ICA{}.npy'.format(i))

我懂了。这与numpy.load和numpy.save的工作方式相同吗?是的,这是字符串格式。继续读这篇文章:你给我的第二个解决方案不起作用。它说“不能将'int'对象隐式转换为str”奇怪?我肯定是Python干的。。可以在str()中包装int。我已经更新了我的答案