在打开的 cv2 中调整图像大小时,我收到此错误 Expected Ptr<cv::UMat> for argument '%s'

数据挖掘 Python opencv
2022-02-14 19:25:07

这是我的代码:

# loading image from folder
folders = glob.glob('path to folder ')

imagenames_list = []

for folder in folders:
    for f in glob.glob(folder+'/*.jpg'):
        imagenames_list.append(f)

read_images = []        

for image in imagenames_list:
    read_images.append(cv2.imread(image, cv2.IMREAD_GRAYSCALE))

re_size = cv2.resize(read_images, (50,50), interpolation=cv2.INTER_LINEAR)

我收到这个错误

Expected Ptr<cv::UMat> for argument '%s'

这是什么意思,我该如何解决?

3个回答

我把数据类型从float16改成了float32,解决了问题:

images.astype(np.float32)

我认为您的问题是因为您将一个列表而不是图像的 numpy 数组提供给 cv2.resize。

re_size = [cv2.resize(img, (50,50), interpolation=cv2.INTER_LINEAR) for img in read_images] 

应该为你解决这个问题。

我建议,因为它是 OpenCV 的一个功能。所以最好的方法是使用读取图像 cv2然后利用图像或将图像转换为numpy.ndarray. 希望这会有所帮助

path=r'C:\Users\imzia\Rb\S010_004_00000019.png'
image=cv2.imread(path)  
gray=cv2.cvtColor(image,cv2.Color_BGR2GRAY)