项目场景:
opencv使用体验真的很差,用了这么多年,遇到了各种不兼容的问题,今天的起源 真的对opencv是又爱又恨
opencv-python==4.2
问题描述
这个是我的python代码
cv_kp2 = [cv2.KeyPoint(x=pt[0], y=pt[1], _size=1) for pt in kp2[kp_list]]
以下报错发生
cv2.error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function 'KeyPoint' > Overload resolution failed: > - KeyPoint() missing required argument 'size' (pos 3)
这个问题是opencv的KeyPoint类出了问题
原因分析:
把上面的问题翻译成人话就是这个东西传入的参数有问题,少了一个必要的size
参数
我的代码是别人用的,可能是当时写的。我看了看别人的KeyPoint类介绍,确实是用的_size
参数名
解决方案:
只需要将_size
参数名改为size
参数名
cv_kp2 = [cv2.KeyPoint(x=pt[0], y=pt[1], size=1) for pt in kp2[kp_list]]
我真的受不了。各种兼容性问题一天天出现。