AttributeError:模块'cv2.cv2'没有属性'cv'(类似的主题没有帮助)

Posted

技术标签:

【中文标题】AttributeError:模块\'cv2.cv2\'没有属性\'cv\'(类似的主题没有帮助)【英文标题】:AttributeError: module 'cv2.cv2' has no attribute 'cv' (similar topic didn't help)AttributeError:模块'cv2.cv2'没有属性'cv'(类似的主题没有帮助) 【发布时间】:2021-01-12 19:35:04 【问题描述】:

我正在使用 python-OpenCV 4.4 版并且只运行一个基本代码块:

import cv2

camera_capture = cv2.VideoCapture(0)
fps = 30
size = int(camera_capture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)),\
        int(camera_capture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
video_writer = cv2.VideoWriter('MyOutputVid.avi', cv2.cv.CV_FOURCC('I','4','2','0'),
fps, size)

我得到AttributeError: module 'cv2.cv2' has no attribute 'cv' 我知道已经从 OpenCV 过渡到 OpenCV2,但是如何 进口受到影响?

我发现了类似的主题 here,但从代码中删除第二个 cv2 对我的情况没有帮助。它只是抛出了另一个错误AttributeError: module 'cv2.cv2' has no attribute 'CV_CAP_PROP_FRAME_WIDTH'

如何使用属性?

【问题讨论】:

见***.com/q/51853018/11667949 @ShivamJha ^ 这有什么帮助?我没有安装问题。 我猜你可以测试几个组合。它可能应该是“ cv2.CAP_PROP_FRAME_HEIGHT ”。在此处查看更多示例:***.com/questions/31076403/… @Grebtsew 我已经试过了。收到错误cv2 has no attribute CAP_PROP_FRAME_HEIGHT Okej,它似乎在 python 3.8、cv2 4.4.0.42 上为我工作。重新安装试试? 【参考方案1】:

所以这段代码似乎可以工作。希望做你想做的事。适用于 Windows 10、python3 3.8.6 64 位、opencv-python 4.4.0.42。

import cv2

camera_capture = cv2.VideoCapture(0)

fps = 30
size = int(camera_capture.get(cv2.CAP_PROP_FRAME_WIDTH)),\
        int(camera_capture.get(cv2.CAP_PROP_FRAME_HEIGHT))

vidwrite = cv2.VideoWriter('testvideo.avi', cv2.VideoWriter_fourcc('I','4','2','0'), fps, 
           size,True)


# Write and show recording
while camera_capture.isOpened():

        _, frame =  camera_capture.read()
        vidwrite.write(frame)

        cv2.imshow("showlive", frame)
        cv2.waitKey(1)

如果您仍然对 CAP_PROP_FRAME_HEIGHT 有问题,我建议重新安装 opencv。 32 位版本的 python3 不支持 OpenCV 中的某些函数,可能也值得检查。当然,另一种方法是使用height, width, _ = frame.shape 参见上面代码中的frame

【讨论】:

所以主要问题是 CV_CAP_PROP_FRAME_WIDTHCAP_PROP_FRAME_WIDTH 在从 cv1 到 cv2 的过渡期间,它们显然也更改了方法的名称。我正在从 2016 年出版并使用 cv2 的书中学习,但书中使用的某些方法保持不变并引发错误。

以上是关于AttributeError:模块'cv2.cv2'没有属性'cv'(类似的主题没有帮助)的主要内容,如果未能解决你的问题,请参考以下文章

属性错误模块 'cv2.cv2' 没有属性 'videocapture'

AttributeError: module ‘cv2.cv2‘ has no attribute ‘MultiTracker_create‘

模块“cv2.cv2”没有属性“xfeatures2d”,模块“cv2.cv2”没有属性“SIFT”

开放CV 4 |没有模块名称 cv2.cv2 |

模块'cv2.cv2'没有属性'xfeatures2d'(OpenCV 4.1.2)[重复]

'cv2.cv2'没有属性'EM'