Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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
在python中的每个for循环迭代中将数组存储在唯一变量中_Python_Arrays - Fatal编程技术网

在python中的每个for循环迭代中将数组存储在唯一变量中

在python中的每个for循环迭代中将数组存储在唯一变量中,python,arrays,Python,Arrays,目前,我正在使用windows平台进行一个python项目,我需要在其中处理图像。 在这种情况下,我需要将我的图像分成几个部分,然后将它们存储为唯一的图像。 为此,我需要将图像转换为浮点数组,然后对其进行分割 对分割部分进行排序。 但我遇到的问题是存储这些新生成的数组 例如,如果我的循环运行了6次,将生成6个新数组(大尺寸,比如300 X 420),我需要将它们存储在每次迭代的唯一变量中,这样它们就不会相互重叠 我该怎么做 如何为每次迭代将新生成的循环数组存储到不同的数组中?之后我需要这些数组,

目前,我正在使用windows平台进行一个python项目,我需要在其中处理图像。 在这种情况下,我需要将我的图像分成几个部分,然后将它们存储为唯一的图像。 为此,我需要将图像转换为浮点数组,然后对其进行分割 对分割部分进行排序。 但我遇到的问题是存储这些新生成的数组

例如,如果我的循环运行了6次,将生成6个新数组(大尺寸,比如300 X 420),我需要将它们存储在每次迭代的唯一变量中,这样它们就不会相互重叠

我该怎么做

如何为每次迭代将新生成的循环数组存储到不同的数组中?之后我需要这些数组,因此存储它们对我来说很重要

生成的数组数量也是动态的

代码如下:

`

`

注意:生成的阵列已经是二维的,大小为327 X 500。 所以请给我一个存储二维阵列的解决方案。 现在不管我们使用什么字典、列表或新变量:)

编辑

根据一些解决方案,我尝试将新生成的数组插入到另一个大数组中。但仍然有一些错误,我得到。新的代码块是:

#read image and do its segmentation
 image = cv2.imread("Path to input image\\___.png")
 segments = slic(img_as_float(image), compactness=100.0, n_segments = 2,sigma = 5) 
 #loop to generate individual segments and to store them individually
 for (i, segVal) in enumerate(np.unique(segments)):
    print "[x] inspecting segment %d" % (i)
    mask = np.zeros(image.shape[:2], dtype = "uint8")
    mask[segments == segVal] = 255
    s2 = np.array(segments);
    results= []
    bb= (cv2.bitwise_and(image, image, mask = mask) )
    results.append(bb)
    #above the unique array is generated and appended into a big array
    #store the generated array as unique image at desired location
    cv2.imwrite('Path to store\\__.png', results(i))
我得到的错误有:

无法为此行调用列表对象
cv2.imwrite('Path to store\\\\ uuuu.png',results(i))


应进行哪些更改?

您不能将其存储在唯一变量中。但是,您可以创建一个二维数组来存储它们。例如,如果有3个生成的数组:
[1,2,3]
[4,5,6]
[7,8,9]
,则二维数组的结构如下所示:

[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
然后,要访问各个数组,只需访问所需的索引,然后是所需元素的索引。例如,要获取第一个数组的第二个元素,可以说类似于
arr[0][1]
。这将返回
2

编辑

单个数组是否已经是二维的并不重要。只需添加另一个维度即可。比如说,

# make a big array
bigarray = []

#read image and do its segmentation
 image = cv2.imread("Path to input image\\___.png")
 segments = slic(img_as_float(image), compactness=100.0, n_segments = 2,sigma = 5) 
 #loop to generate individual segments and to store them individually
 for (i, segVal) in enumerate(np.unique(segments)):
    print "[x] inspecting segment %d" % (i)
    mask = np.zeros(image.shape[:2], dtype = "uint8")
    mask[segments == segVal] = 255
    s2 = np.array(segments);
    bb= (cv2.bitwise_and(image, image, mask = mask) )
    #above the unique array is generated
    #store the generated array as unique image at desired location
    cv2.imwrite('Path to store\\__.png', bb)

    # push the generated 2d array to the big array
    bigarray.append(bb)

然后,假设您想要访问第一个二维数组,您可以说
bigarray[0]
。如果要访问第一个二维数组的左上角像素,可以说
bigarray[0][0][0]

不能将它们存储在唯一变量中。但是,您可以创建一个二维数组来存储它们。例如,如果有3个生成的数组:
[1,2,3]
[4,5,6]
[7,8,9]
,则二维数组的结构如下所示:

[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
然后,要访问各个数组,只需访问所需的索引,然后是所需元素的索引。例如,要获取第一个数组的第二个元素,可以说类似于
arr[0][1]
。这将返回
2

编辑

单个数组是否已经是二维的并不重要。只需添加另一个维度即可。比如说,

# make a big array
bigarray = []

#read image and do its segmentation
 image = cv2.imread("Path to input image\\___.png")
 segments = slic(img_as_float(image), compactness=100.0, n_segments = 2,sigma = 5) 
 #loop to generate individual segments and to store them individually
 for (i, segVal) in enumerate(np.unique(segments)):
    print "[x] inspecting segment %d" % (i)
    mask = np.zeros(image.shape[:2], dtype = "uint8")
    mask[segments == segVal] = 255
    s2 = np.array(segments);
    bb= (cv2.bitwise_and(image, image, mask = mask) )
    #above the unique array is generated
    #store the generated array as unique image at desired location
    cv2.imwrite('Path to store\\__.png', bb)

    # push the generated 2d array to the big array
    bigarray.append(bb)

然后,假设您想要访问第一个二维数组,您可以说
bigarray[0]
。如果您想访问第一个二维阵列的左上角像素,可以说
bigarray[0][0][0]

您可以将所有内容存储在一个大阵列中。您可以使用二维阵列或字典。你能分享一下使用的示例代码吗?它们的数组已经是二维的了。请分享一个示例代码,解释如何将它们存储在一个大数组中@moritzg327x500对于阵列来说是一个相当小的尺寸。你想要的是使用一个列表,动态生成的变量通常是个坏主意。只需在循环之前创建一个空列表
l
,并在运行时将每个新数组附加到该列表中,即可在调用
l[2]
或任何其他号码后访问这些数组。您可以将所有内容存储在一个大数组中。您可以使用二维数组或字典。你能分享一下使用的示例代码吗?它们的数组已经是二维的了。请分享一个示例代码,解释如何将它们存储在一个大数组中@moritzg327x500对于阵列来说是一个相当小的尺寸。你想要的是使用一个列表,动态生成的变量通常是个坏主意。只需在循环之前创建一个空列表
l
,并在运行时将每个新数组附加到该列表中,即可在调用
l[2]
或任何其他号码后访问这些数组。我的数组是二维的。有没有方法将二维数组存储到另一个数组中?只需添加另一个维度。数组可以是三维的:),所以它类似于arr[0][0][1]。请举一个例子。比如它对我的代码有什么帮助@感谢您的解决方案@ThomasJamesTiam lee!:)但是在使用这个大数组解决方案时,我遇到了各种各样的错误。我将编辑我的问题,并显示其中的错误。请检查并帮助!谢谢我的数组是二维的。有没有方法将二维数组存储到另一个数组中?只需添加另一个维度。数组可以是三维的:),所以它类似于arr[0][0][1]。请举一个例子。比如它对我的代码有什么帮助@感谢您的解决方案@ThomasJamesTiam lee!:)但是在使用这个大数组解决方案时,我遇到了各种各样的错误。我将编辑我的问题,并显示其中的错误。请检查并帮助!谢谢你