将代码从openCV更新为openCV2

Wil*_*nes 7 python opencv

我正在尝试将一些代码从openCV更新到python中的openCV2.原始代码如下:

self.capture = cv.CaptureFromCAM(0)
cv.SetCaptureProperty( self.capture, cv.CV_CAP_PROP_FRAME_WIDTH, 160 );
cv.SetCaptureProperty( self.capture, cv.CV_CAP_PROP_FRAME_HEIGHT, 120 );
Run Code Online (Sandbox Code Playgroud)

我为openCV2编写的代码是这样的:

self.capture = cv2.VideoCapture(0)
cv2.VideoCapture.set( CV_CAP_PROP_FRAME_WIDTH, 160 );
cv2.VideoCapture.set( CV_CAP_PROP_FRAME_HEIGHT, 120 );
Run Code Online (Sandbox Code Playgroud)

但是这不起作用我收到的错误是:

cv2.VideoCapture.set(CV_CAP_PROP_FRAME_WIDTH,160); AttributeError:'builtin_function_or_method'对象没有属性'set'

小智 11

似乎CV_CAP_PROP_POS_MSEC和其他类似的属性在您安装的Opencv版本中已被弃用,以解决问题,例如此属性,将其更改为cv2.CAP_PROP_POS_MSEC其他类似属性.在Opencv 3.1上对我有用


小智 10

我遇到了同样的问题,能够使用它:

cap = cv2.VideoCapture(0)

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 160);
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 120);
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,它实际上并没有设置它捕获的帧尺寸. (2认同)

Rah*_*K P 7

试试这个吧.它会工作.

self.capture.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 160)
Run Code Online (Sandbox Code Playgroud)


小智 5

我删除了.cv.CV_,它起作用了。

改变:

cv2.cv.CV_CAP_PROP_FRAME_HEIGHT
Run Code Online (Sandbox Code Playgroud)

到:

cv2.CAP_PROP_FRAME_HEIGHT
Run Code Online (Sandbox Code Playgroud)