簡體   English   中英

模塊“cv2.cv2”沒有屬性“cv”

[英]module 'cv2.cv2' has no attribute 'cv'

import cv2 
import numpy as np
cap = cv2.VideoCapture('1.MP4')
fourcc = cv2.FOURCC(*'XVID')
out  = cv2.videoWriter('output.avi',fourcc,20.0,(640,480))

while (1):
  #Capture frame-by-frame
  #ret = cap.set(3,960),cap.set(4,720)
  ret, frame = cap.read()
  if ret == True:
      frame = cv2.flip(frame,0)
      out.write(frame)

      cv2.imshow('frame',frame)

      if cv2.waitKey(1) == ord('q'):
          break
  else:
      break

cap.release()
out.release()
cv2.destroyAllWindows()

如上所示,這是opencv文檔中的一個演示。雖然它可以在我的PC上運行。 像這樣回溯:

Traceback (most recent call last):
  File "E:\opencv\Pic\test.py", line 34, in <module>
    fourcc = cv2.cv.FOURCC(*'XVID')
AttributeError: module 'cv2.cv2' has no attribute 'cv'

而且我還看到了一些解決方案,例如將 cv2.cv 更改為 cv2 ,而回溯如下:

Traceback (most recent call last):
  File "E:\opencv\Pic\test.py", line 34, in <module>
    fourcc = cv2.FOURCC(*'XVID')
AttributeError: module 'cv2.cv2' has no attribute 'FOURCC'

對於我的問題,我非常感謝任何熱情的解決方案。

@Spence wetjen 帖子的鏈接適用於舊的 OpenCV,不適用於 OpenCV 3.x。

這是我的代碼:


環境:Python3 + OpenCV 3.3

#!/usr/bin/python3
import cv2

## opening videocapture
cap = cv2.VideoCapture(0)

## some videowriter props
sz = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),
        int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))

fps = 20
#fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
#fourcc = cv2.VideoWriter_fourcc('m', 'p', 'e', 'g')
fourcc = cv2.VideoWriter_fourcc(*'mpeg')

## open and set props
vout = cv2.VideoWriter()
vout.open('output.mp4',fourcc,fps,sz,True)

cnt = 0
while cnt<20:
    cnt += 1
    print(cnt)
    _, frame = cap.read()
    cv2.putText(frame, str(cnt), (10, 20), cv2.FONT_HERSHEY_PLAIN, 1, (0,255,0), 1, cv2.LINE_AA)
    vout.write(frame)

vout.release()
cap.release()

結果:

也導入 contrib 庫。

pip install opencv-contrib-python

pip3 install opencv-contrib-python

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM