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

2024-09-28 20:58:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题其实很简单。在

我的电脑上有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')

我不想复制粘贴相同的代码块,只改变图片编号一百次,我想在一个循环中这样做。 我也有类似的问题负荷. 我想加载文件称为ICA1 ICA2等到ICA100。有没有可能写些像

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


Tags: inio图像homefor图片range事情
3条回答

像这样:

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

或者,像这样:

^{pr2}$

继续阅读关于basic string operations的文章以及这篇关于string formatting的简单文章

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, 101):
    x = io.imread('/home/oria/Desktop/more pics/' + str(i) + '.ppm')

请注意,range函数的高端不是包含的,因此使用range(1, 100)只会产生1,2,3…99。还要注意,i必须转换为字符串,否则您将收到TypeError: cannot concatenate 'str' and 'int' objects。在

相关问题 更多 >