python - 类型错误:使用 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()
解决方案
我有同样的问题并使用:
image=np.uint8(image)
其中 image 是您的 cv.imread() 对象。
推荐阅读
- javascript - 反应路由器在只有 url 改变之后渲染组件一次
- actions-on-google - 有重复响应时的 Google Nest 显示问题
- powershell - Powershell 和 Windows Defender 限制
- c# - 带有额外标签的 XML 响应
- r - 根据条件从每组的列中获取行
- vue.js - Vue中@input和@change有什么区别?
- docker - Kubernetes。带有 Wix 安装程序的 ASP.NET 容器
- c# - 在 MongoDB、过滤器、c# 中返回具有所需值的文档
- unity3d - Unity:我可以在运行时更改网格对撞机的形状吗?
- batch-file - 自动备份的批处理文件