在实现某些函数处理功能时,有时候对批量图像进行处理,希望将处理后的图像传递给另一个函数进行处理,将多张图片作为返回值,需要一个列表存储这些图像作为参数传递给另一个函数。
这个我一开始在网上查的时候,看到是images = [[], []] * images_num
但最后输出时总是有错误TypeError: Expected Ptr
。将images列表输出查看了一下,空列表
图像是矩阵模式存储,直接设置列表为images = [[]]*images_num
即可。
def f1():
images = [[]] * images_num
for i in range images_num:
# 此处省略处理过程,img为处理后的图像
images[i] = img
return images
可以将所有函数暂存入列表中作为返回值。如果将return放入for循环内将只能返回第一张图像数据。
def f2():
# 调用函数f1
images = f1()
# 显示图像,可以直接使用imshow函数,不需要使用imread读取
for img in images:
cv2.imshow(‘img’, img)
cv2.waitKey(100)