繁体   English   中英

对象检测图像文件夹读取返回<built-in function imread>返回 NULL 而不设置错误

[英]Object Detection Images folder read return <built-in function imread> returned NULL without setting an error

我正在创建一个 python 脚本来分析和检测对象检测文件夹中测试图像文件夹中的 jpg 图像中的对象。 运行对象检测 API jupyter notebook 在读取和检测测试图像文件夹中的对象时效果很好。 但是,使用 CMD 或 python shell 在 pyhton 脚本中运行代码会出现以下错误:

   image = cv2.imread(TEST_IMAGE_PATHS)
SystemError: <built-in function imread> returned NULL without setting an error

与错误相关的代码:

PATH_TO_TEST_IMAGES_DIR = 'D:/New folder/models/research/object_detection/test_images'
TEST_IMAGE_PATHS = [ os.path.join(PATH_TO_TEST_IMAGES_DIR, 'image{}.jpg'.format(i)) for i in range(1, 30) ]

# Load image using OpenCV and
# expand image dimensions to have shape: [1, None, None, 3]
# i.e. a single-column array, where each item in the column has the pixel RGB value
image = cv2.imread(TEST_IMAGE_PATHS)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
image_expanded = np.expand_dims(image_rgb, axis=0)

有任何想法吗?

您的问题是TEST_IMAGE_PATHS ,其中包含路径列表,但imread()需要单个路径。

如果要加载单个图像,则必须使用索引 - 即。 [0]第一张图片

image = cv2.imread(TEST_IMAGE_PATHS[0])

如果要处理所有图像,则必须使用for -loop

all_images = []

for path in TEST_IMAGE_PATHS:
    image = cv2.imread(path)
    # keep on list
    all_images.append(image)

甚至在同一个循环中处理所有图像

all_images_expanded = []

for path in TEST_IMAGE_PATHS:
    image = cv2.imread(path)
    image = cv2.imread(TEST_IMAGE_PATHS)
    image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    image_expanded = np.expand_dims(image_rgb, axis=0)
    # keep on list
    all_images_expanded.append(image_expanded)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM