Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.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 2.7 属性错误:';非类型';对象没有属性';形状';使用OpenCV_Python 2.7_Opencv_Machine Learning_Artificial Intelligence_Object Detection - Fatal编程技术网

Python 2.7 属性错误:';非类型';对象没有属性';形状';使用OpenCV

Python 2.7 属性错误:';非类型';对象没有属性';形状';使用OpenCV,python-2.7,opencv,machine-learning,artificial-intelligence,object-detection,Python 2.7,Opencv,Machine Learning,Artificial Intelligence,Object Detection,我正在阅读安装在谷歌colab上的谷歌硬盘上的图片。我有两个文件夹,一个是新冠病毒-19阳性胸部x光片,另一个是正常胸部x光片。我试着把这些图片并排展示,以便比较。以下是代码和错误的图像: 以下是编写的代码: Cimages = ('/content/drive/My Drive/Data/Covid') Nimages = ('/content/drive/My Drive/Data/Normal') import skimage from skimage.transform impor

我正在阅读安装在谷歌colab上的谷歌硬盘上的图片。我有两个文件夹,一个是新冠病毒-19阳性胸部x光片,另一个是正常胸部x光片。我试着把这些图片并排展示,以便比较。以下是代码和错误的图像:

以下是编写的代码:

Cimages = ('/content/drive/My Drive/Data/Covid')
Nimages = ('/content/drive/My Drive/Data/Normal')

import skimage
from skimage.transform import resize
def plot(i):
  normal = cv2.imread(dataset +'Normal//' + Nimages[i])
  normal = skimage.transform.resize(normal, (150,150,3))
  covid = cv2.imread(dataset +'Covid//' + Cimages[i])
  covid = skimage.transform.resize(normal, (150,150,3), mode = reflect)
  pair = np.concatenate((normal, covid), axis = 1)
  print('Normal vs. Covid')
  plt.figure(figsize=(10,5))
  plt.imshow(pair)
  plt.show()

for i in range(0,3):
  plot(i)
这给了我一个错误:

AttributeError                            Traceback (most recent call last)
<ipython-input-52-237aff042641> in <module>()
      1 for i in range(0,3):
----> 2   plot(i)

<ipython-input-50-85bb2e03725c> in plot(i)
      3 def plot(i):
      4   normal = cv2.imread(dataset +'Normal//' + Nimages[i])
----> 5   normal = skimage.transform.resize(normal, (150,150,3))
      6   covid = cv2.imread(dataset +'Covid//' + Cimages[i])
      7   covid = skimage.transform.resize(normal, (150,150,3), mode = reflect)

/usr/local/lib/python3.6/dist-packages/skimage/transform/_warps.py in resize(image, output_shape, order, mode, cval, clip, preserve_range, anti_aliasing, anti_aliasing_sigma)
     89     output_shape = tuple(output_shape)
     90     output_ndim = len(output_shape)
---> 91     input_shape = image.shape
     92     if output_ndim > image.ndim:
     93         # append dimensions to input_shape
AttributeError回溯(最近一次调用)
在()
1表示范围(0,3)内的i:
---->二、地块(一)
第(一)部分
3 def绘图(一):
4 normal=cv2.imread(数据集+'normal/'+Nimages[i])
---->5法线=浏览、变换、调整大小(法线,(150150,3))
6 covid=cv2.imread(数据集+'covid/'+Cimages[i])
7 covid=浏览、变换、调整大小(正常,(150150,3),模式=反射)
/usr/local/lib/python3.6/dist-packages/skimage/transform//u warps.py调整大小(图像、输出形状、顺序、模式、cval、剪辑、保留范围、抗锯齿、抗锯齿)
89输出形状=元组(输出形状)
90输出ndim=len(输出形状)
--->91输入_形状=image.shape
92如果输出>image.ndim:
93#将尺寸附加到输入#形状
AttributeError:“非类型”对象没有属性“形状”


因此,它似乎出现在代码的skiliage.tranform.resize行中。请提供帮助。

问题不在于功能

skimage.tranform.resize
但是随着图像的阅读

normal=cv2.imread(数据集+'normal/'+Nimages[i])
不确定您想在那里做什么,但是
Nimages[i]
不会给您文件夹中的第一个文件,但它会产生字符串的第一个字符,在您的情况下
/
。然后您将发送
数据集
变量+
正常/
+
/
,这基本上就是您的情况
正常//
,然后您将尝试读取该路径上的图像,但毫无疑问,那里没有图像,在这种情况下
opencv
将返回给您
(基本上没有)。然后尝试使用
skimage
调整
None
的大小,这将失败

更好的选择是直接读取图像,或者在某种程度上看起来像这样的循环中读取图像:

从操作系统导入listdir
从os.path导入isfile,加入
onlyfiles=[f表示listdir(Nimages)中的f,如果isfile(join(Nimages,f))]
对于仅文件中的图像路径:
normal=cv2.imread(连接(图像、图像路径))
法线=撇除、变换、调整大小(法线,(150150,3))

假设您提到的目录中只有图像。

尝试添加代码段,而不是您可以看到的图像。我同时添加了这两个代码段。有代码和错误的图片,还有代码片段。