Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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/3/arrays/12.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 调整引用其他数组的numpy数组的大小_Python_Arrays_Numpy_Opencv - Fatal编程技术网

Python 调整引用其他数组的numpy数组的大小

Python 调整引用其他数组的numpy数组的大小,python,arrays,numpy,opencv,Python,Arrays,Numpy,Opencv,在上面的代码中,我首先使用opencv加载图像,然后在第二个块中调整图像大小并更改其颜色空间 我的批量大小是6408,图像的尺寸是101*101*3 当我做训练img.shape时,我得到(6408,),当训练img[i]时,shape我得到101*101*3,因此我无法训练我的神经网络模型,我想要的维度是6408*101*101*3 我尝试用这个序列调整形状。resize(6408101101,3)我得到了这个值错误:无法调整引用或被引用的数组的大小 以这种方式由另一个数组执行。使用调整大小功

在上面的代码中,我首先使用opencv加载图像,然后在第二个块中调整图像大小并更改其颜色空间

我的批量大小是
6408
,图像的尺寸是
101*101*3
当我做
训练img.shape
时,我得到
(6408,)
,当
训练img[i]时,shape
我得到
101*101*3
,因此我无法训练我的神经网络模型,我想要的维度是
6408*101*101*3

我尝试用这个
序列调整形状。resize(6408101101,3)
我得到了这个
值错误:无法调整引用或被引用的数组的大小
以这种方式由另一个数组执行。使用调整大小功能

在用我的模型拟合时,我在检查输入时得到了这个错误:预期conv2d_3_输入有4个维度,但得到了形状为(6408,1)的数组。


我想知道是否可以使用当前加载图像的方法更改输入的尺寸。

此处不应使用
dtype=object
。OpenCV仍然会创建
ndarray
图像

以下是您的代码的更正版本:

mypath='/Users/sachal/Desktop/data\u raw/normal\u 1/images'
onlyfiles=[f表示os.listdir(mypath)中的f,如果os.path.isfile(join(mypath,f))]
图像=[]
对于仅文件中的文件:
img=cv2.imread(os.path.join(mypath,file))
调整大小\u img=cv2。调整大小(img,(101101))
yuv\u img=cv2.CVT颜色(调整大小的\u img,cv2.COLOR\u BGR2YUV)
图像。附加(yuv_img.重塑(1011013))
列\u img=np.连接(图像,轴=0)
打印(序列图像形状)

在循环中,加载每个图像,调整其大小,将其转换为YUV,然后将其放入列表中。在循环结束时,您的列表包含所有培训图像。您可以将其传递到
np。连接
要创建
ndarray

请尝试提供一个没有本地数据链接的工作示例。嵌入一个带有值的小矩阵以显示您的意思。我想要的是
[1]
这种类型的矩阵,但我得到的是一个包含6408个元素的列表,然后每个元素都是[1]
mypath='/Users/sachal/Desktop/data_raw/normal_1/images'
onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]
images = np.asarray(np.empty(len(onlyfiles), dtype=object))

for n in range(0, len(onlyfiles)):
  images[n] = cv2.imread( join(mypath,onlyfiles[n]) )
#--------------------------------------------------------------------------------
resized = np.asarray(np.empty(len(onlyfiles), dtype=object))
img_f = np.asarray(np.empty(len(onlyfiles), dtype=object))


for n in range(0, len(onlyfiles)):
  resized[n] = cv2.resize(images[n],(101,101))
  img_f[n] = cv2.cvtColor(resized[n], cv2.COLOR_BGR2YUV)

train_img =  np.asarray(img_f)
#--------------------------------------------------------------------------------