Wavelet-jc / Deep-SfM-Revisited-annotated

0 stars 0 forks source link

ValueError: cannot resize an array that references or is referenced, in line 102 #3

Open Wavelet-jc opened 1 year ago

Wavelet-jc commented 1 year ago
  File "/media/lokia/My_Passport/JIANGCHAO/python project/Deep-SfM-Revisited-annotated/flow_transforms.py", line 102, in __call__
    scaled_images = [im.resize((scaled_h, scaled_w)) for im in images]  #  
  File "/media/lokia/My_Passport/JIANGCHAO/python project/Deep-SfM-Revisited-annotated/flow_transforms.py", line 102, in <listcomp>
    scaled_images = [im.resize((scaled_h, scaled_w)) for im in images]  
ValueError: cannot resize an array that references or is referenced
by another array in this way.
Use the np.resize function or refcheck=False
Wavelet-jc commented 1 year ago

chatgpt:

根据错误提示,无法直接使用im.resize()函数来调整numpy数组的大小,因为该函数不能处理相互引用的数组。你可以使用np.resize()函数来替代。

将以下代码:

scaled_images = [im.resize((scaled_h, scaled_w)) for im in images]

修改为:

scaled_images = [np.resize(im, (scaled_h, scaled_w, im.shape[2])) for im in images]

这样可以使用np.resize()函数来调整数组大小,同时保留图像的通道数。请注意,这可能会导致图像变形或失真,因为np.resize()函数是通过插值来调整大小的。如果需要保持图像质量,建议使用其他库或方法进行图像缩放。