【问题标题】:TypeError: 'NoneType' object is unsubscriptable in cv2.NormalizeTypeError:'NoneType' 对象在 cv2.Normalize 中不可下标
【发布时间】:2018-09-02 20:27:12
【问题描述】:

我编译了这个程序,它从细胞图像中提取特征,并使用 python-3.5 上的随机森林分类器判断它是否是癌性的。我在运行良好的 Windows 8.1 上制作了它。但它不适用于我的具有 raspbian 拉伸操作系统的树莓派。这是显示错误的代码。

def colorRatioMean(rgbImage):     
  R = cv2.normalize(rgbImage[:,:,0].astype('double'), None, 0, 255, 
  cv2.NORM_MINMAX)
  G = cv2.normalize(rgbImage[:,:,1].astype('double'), None, 0, 255, 
  cv2.NORM_MINMAX)
  B = cv2.normalize(rgbImage[:,:,2].astype('double'), None, 0, 255, 
  cv2.NORM_MINMAX)

上面显示的代码是我的类中提取特征的部分。

我收到以下错误:

Traceback (most recent call last):
File "/home/pi/Desktop/Cancer_Detector/image.py", line 117, in <module>
  r, g, b = features.colorRatioMean(image)
File "/home/pi/Desktop/Cancer_Detector/image.py", line 24, in colorRatioMean
  R = cv2.normalize(rgbImage[:,:,0].astype('double'), 0, 255, 
  cv2.NORM_MINMAX)
TypeError: 'NoneType' object is not subscriptable

请帮我解决这个问题。

【问题讨论】:

  • 你的rgbImage 原来是空的。查看代码以查看此变量的来源,并检查图像是否正确加载。
  • 以上列表中的行不匹配:R = cv2.normalize(rgbImage[:,:,0].astype('double'), None, 0, 255, cv2.NORM_MINMAX)R = cv2.normalize(rgbImage[:,:,0].astype('double'), 0, 255, cv2.NORM_MINMAX) 'None' 缺失。

标签: python linux opencv machine-learning raspberry-pi


【解决方案1】:
您传递给函数的图像是一个空图像。要查看空图像的类型: rgbImage = cv2.imread("some_non_existing_image.jpg") print ("图像类型:",type(rgbImage)) 结果将是: '图像类型:',输入'NoneType' 要解决此问题,请在将图像类型传递给函数之前对其进行测试 像这样调用函数的地方: 如果 rgbImage 为无: # # 不要将它传递给函数,也许是通过传递 # 打印(“空图像”) 通过 # 仅作为示例 别的: colorRatioMean(rgbImage) 请参阅:“'NoneType' 对象不可下标”是因为其中没有任何内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2021-02-14
    相关资源
    最近更新 更多