python - OpenCV错误-python中的Imread语句

标签 python numpy opencv

我编译了这段代码:

import numpy as np
import cv2   as cv
simps = np.zeros((8000,128,128,3))
j = 0
for i in range(1000,9001):

        print(j)

        if   (i % 10 == i and i != 10):
            filename = '/content/cropped/' + str(i) + '.png'
        elif (i % 100 == i and i != 100):
            filename = '/content/cropped/' + str(i) + '.png'
        elif (i % 1000 == i and i != 1000):
            filename = '/content/cropped/' + str(i) + '.png'
        elif (i % 10000 == i and i != 10000):
            filename = '/content/cropped/' + str(i) + '.png'
        print(filename)
        print(type(filename))
        simps[j,:,:,:] = cv.imread(filename)
        print(simps[j,:,:,:])
        simps[j,:,:,:] = cv.resize(simps[j,:,:,:],(128,128));
        j += 1
simps = simps.astype('uint8')
np.save('/content/simps.npy',simps)

但是得到这个错误:
     17         print(filename)
     18         print(type(filename))
---> 19         simps[j,:,:,:] = cv.imread(filename)
     20         print(simps[j,:,:,:])
     21         simps[j,:,:,:] = cv.resize(simps[j,:,:,:],(128,128));

ValueError: could not broadcast input array from shape (200,200,3) into shape (128,128,3)

这个错误在cv.imread()上,但是我的代码是正确的。我的代码是在colab上编译的,但是当我在系统上编译时,它可以正常工作。你知道那个错误吗?

最佳答案

您正在尝试在调整数组大小之前填充数组,请尝试在第19行

simps[j,:,:,:] = cv.resize(cv.imread(filename),(128,128))

关于python - OpenCV错误-python中的Imread语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61984042/

相关文章:

java - 如何将 java 图像集合转换为 CvArr

将 OpenCV 从 3.0.0 降级到 2.4.11 时出现 Python cv2 链接问题

python 2 : How do I condense like terms in a tuple?

使用 numpy 的 Python 微分不产生预期的输出

python - Numpy/Python 数组值错误

Python scipy 优化未找到最小值

c++ - 这个 opencv 函数如何在 C++ 中解释

c - 从程序中模仿键盘?

python - 属性错误 : 'NoneType' object has no attribute '_instantiate_plugins'

python - 对 Pandas DataFrame 中存在非数字值的所有列求和