Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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 scikit图像转换值错误:缓冲区不连续_Python_Numpy_Buffer_Scikit Image - Fatal编程技术网

Python scikit图像转换值错误:缓冲区不连续

Python scikit图像转换值错误:缓冲区不连续,python,numpy,buffer,scikit-image,Python,Numpy,Buffer,Scikit Image,我正在使用skimage transform模块的resize方法 不总是这样,但有时,我在这行上会出错: candidate = resize(np.copy(img[candidate_box[0]:candidate_box[2],candidate_box[1]:candidate_box[3]]), (50,100)) 它告诉我: ValueError: Buffer not C contiguous 如何修复此问题?重塑(和其他操作)有时会破坏阵列的连续性。您可以通过查看标志来检

我正在使用skimage transform模块的
resize
方法

不总是这样,但有时,我在这行上会出错:

candidate = resize(np.copy(img[candidate_box[0]:candidate_box[2],candidate_box[1]:candidate_box[3]]), (50,100))
它告诉我:

ValueError: Buffer not C contiguous
如何修复此问题?

重塑(和其他操作)有时会破坏阵列的连续性。您可以通过查看
标志来检查是否发生了这种情况:

>>> a = np.arange(10).reshape(5, 2).T
>>> a.flags
  C_CONTIGUOUS : False # reshaped array is no longer C contiguous
  F_CONTIGUOUS : True
  OWNDATA : False
  WRITEABLE : True
  ALIGNED : True
  UPDATEIFCOPY : False
尝试使用以下命令创建数组的C连续副本:


函数返回一个与目标数组形状和值相同的数组,但返回的数组存储为C连续数组。

我发现一个错误可能引发此异常。确保您的区域位于图像中。例如,假设图像是300x200,区域是[199:299100:199]。注299>200。如果执行调整大小(图像[100:199,199:299]),您将看到此错误


希望它能对您有所帮助。

也许您可以提供一个显示此行为的自包含片段吗?这是不应该发生的,如果发生了,我想修复一个bug。调整非连续阵列的大小在我的系统上有效。您建议我在哪里添加ascontiguousarray部分?我是这样尝试的:
candidate=resize(np.ascontiguousarray(img[candidate\u-box[0]:candidate\u-box[2]、candidate\u-box[1]:candidate\u-box[3]],(50100))
@user961627是的,如果
resize
要求数组是C连续的,这似乎是一个使用它的好地方。
 >>> b = np.ascontiguousarray(a)
 >>> b.flags
  C_CONTIGUOUS : True # array b is a C contiguous copy of array a
  F_CONTIGUOUS : False
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  UPDATEIFCOPY : False