cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-ykpa0m5d\opencv\modules\imgproc\src\imgwarp.cpp:3167: error: (-215:Assertion failed) (M0.type() == CV_32F || M0.type() == CV_64F) && M0.rows == 3 && M0.cols == 3 in function 'cv::warpPerspective'
时间: 2023-07-03 19:09:26 浏览: 281
这个错误通常是因为传递给cv2.warpPerspective()的变换矩阵(M)的类型或形状不正确。请确保M是3x3的浮点型(float或double)矩阵,如下所示:
```
M = np.float32([[1, 0, tx], [0, 1, ty], [0, 0, 1]])
warped_img = cv2.warpPerspective(img, M, (width, height))
```
如果仍然出现错误,请检查您传递给warpPerspective的其他参数是否正确。例如,输出图像的大小应该是一个元组,表示(宽度,高度)。
相关问题
x, y, w, h = cv2.boundingRect(contours[0]) cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-ykpa0m5d\opencv\modules\imgproc\src\shapedescr.cpp:874: error: (-215:Assertion failed) npoints >= 0 && (depth == CV_32F || depth == CV_32S) in function 'cv::pointSetBoundingRect'
这个错误是由于 cv2.boundingRect() 函数的参数传递错误导致的。这个函数需要一个轮廓列表作为参数,而你可能是没有成功找到轮廓或没有将其转换为列表形式。请检查你的代码,确保找到了正确的轮廓,并将其传递给 cv2.boundingRect() 函数。另外,也可以检查一下轮廓列表的数据类型,确保它们是 CV_32F 或 CV_32S 类型。
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-ykpa0m5d\opencv\modules\core\src\arithm.cpp:669: error: (-209:Sizes of input arguments do not match) The operation is neither 'array op array' (where arrays have the same size and the same number of channels), nor 'array op scalar', nor 'scalar op array' in function 'cv::arithm_op'
这个错误通常是由于输入的两个数组大小或通道数不匹配,而导致的。请检查你的代码,确保输入的两个数组的大小和通道数相同。如果你使用的是OpenCV中的算术运算函数(如cv2.add()、cv2.subtract()等),请确保输入的两个数组大小相同。如果你使用的是数组和标量之间的算术运算,确保标量的通道数与数组的通道数相同。如果你仍然遇到困难,请提供更多的代码和错误信息,以便更好地帮助你解决问题。
阅读全文