python3+opencv 4.3.0 使用cv.rectangle时报出TypeError: Expected Ptr<cv::UMat> for argument ‘img‘

解决方法

将传入cv2.rectangle()的第一个参数先使用cv2.UMat().get()方法转化一下类型,像这样:

img = cv2.UMat(img).get()
cv2.rectangle(img, (x1, y1), (x2, y2), (B, G, R), line_width)

使用cv2.UMat(img).get()后,这个版本的opencv-python 4.3.0会导致程序变成僵尸程序,就是像这样(程序运行到代码最后一行不会自动退出,总是要我手动kill它很烦耶):
python3+opencv 4.3.0 使用cv.rectangle时报出TypeError: Expected Ptr<cv::UMat> for argument ‘img‘_第1张图片

按下stop键后变成了这样(一个骷髅头…恐怖吧):
python3+opencv 4.3.0 使用cv.rectangle时报出TypeError: Expected Ptr<cv::UMat> for argument ‘img‘_第2张图片
最后我只好手动kill掉它…所以建议大家把版本调整下。python3+opencv 4.3.0 使用cv.rectangle时报出TypeError: Expected Ptr<cv::UMat> for argument ‘img‘_第3张图片

调整cv的版本,解决上述僵尸程序问题

把版本调整到3.4左右,重新运行就没得问题了。
python3+opencv 4.3.0 使用cv.rectangle时报出TypeError: Expected Ptr<cv::UMat> for argument ‘img‘_第4张图片

你可能感兴趣的:(深度学习,opencv,pycharm,opencv)