python cv2.imread在第6个图像上不返回任何内容

时间:2018-12-04 02:39:24

标签: python-3.x typeerror opencv3.0 imread

我正在尝试导入和读取文件夹中的所有图像。但是,当我有5张以上的图像时,cv2.imread不会为第6张图像返回任何图像。我尝试使用不同的文件名,不同的文件等,但是无法正常工作。

find_elements_by_css_selector('*[id_str]')

我收到以下错误信息...(import cv2 import numpy as np import matplotlib.pyplot as plt from tkinter import filedialog import os from mpl_toolkits.mplot3d import Axes3D global scan_dir scan_dir = filedialog.askdirectory() print(scan_dir) x=os.listdir(scan_dir) img={} print(x) for i in range(0,len(x)): print(i) img[i] = cv2.imread(x[i], cv2.IMREAD_GRAYSCALE) indices[i] = np.where(img[i]<100) None在循环的第6次迭代中的返回)

print(img[i]

如果我尝试这个,我也会遇到同样的问题

None
Traceback (most recent call last):
File "C:\CodeRepository\US-3D\GettingCloser.py", line 55, in <module>
      indices[i] = np.where(img[i]<100)
TypeError: '<' not supported between instances of 'NoneType' and 'int'

它将返回global scan_dir scan_dir = filedialog.askdirectory() print(scan_dir) x=os.listdir(scan_dir) img = cv2.imread(x[5], cv2.IMREAD_GRAYSCALE) img。对于除第5张图片以外的所有图片,都是如此。

1 个答案:

答案 0 :(得分:0)

文件一定有问题。 dict是无序的数据结构。不应总是在5th迭代中给出错误。但是,我进行了更改,不会引发错误。但是您需要调试该图像

for i in range(0,len(x)):

    print(i)

    img[i] = cv2.imread(x[i], cv2.IMREAD_GRAYSCALE)
    if img[i]:

        indices[i] = np.where(img[i]<100)