首页 > 解决方案 > 类型错误:使用 OpenCV 在 Python 中旋转图像时参数“mat”的预期 cv::UMat

问题描述

我试图使用 Python 旋转图像,并且我认为旋转图像的逻辑是正确的,但是每当我尝试使用 OpenCV 显示旋转后的图像时,都会出现以下错误:

TypeError:参数“mat”的预期 cv::UMat

我是 Python 新手,也是第一次使用 OpenCV,所以对此我没有太多想法。旋转图像的类型是numpy.ndarray,我认为 OpenCV 适用于nd.array

这是我的代码:

import cv2
import numpy as np

def rotateToNinety(imageProcessing):
    imageProcessing = imageProcessing[::-1]
    rotatedImage = np.array([[[None for z in range(3)] for x in range(len(imageProcessing))]for y in range(len(imageProcessing[0]))])

    for i in range(len(imageProcessing[0])):
        for j in range(len(imageProcessing)):
            for k in range(3):
                rotatedImage[i][j][k] = imageProcessing[j][i][k]
    return rotatedImage


image = cv2.imread("download (2).jpg",1)

print("Original Image".center(50,"="))
print(image)

cv2.imshow("Original",image)
cv2.waitKey(0)

print(type(image))


rotated_90 = rotateToNinety(image)
print("Rotated Image".center(50,"="))
print(rotated_90)

print(type(rotated_90))
cv2.imshow("rotated",rotated_90)
cv2.waitKey(0)
cv2.destroyAllWindows()

标签: pythonopencv

解决方案


我有同样的问题并使用:

image=np.uint8(image)

其中 image 是您的 cv.imread() 对象。


推荐阅读