📌  相关文章
📜  模块 'cv2.cv2' 没有属性 'videowriter' - Python (1)

📅  最后修改于: 2023-12-03 15:10:56.928000             🧑  作者: Mango

介绍:模块 'cv2.cv2' 没有属性 'videowriter' - Python

在Python中使用OpenCV模块时,我们可能会遇到“模块 'cv2.cv2'没有属性'videowriter'”这样的错误信息。这种错误通常是由于引入的OpenCV版本不兼容造成的。

在本文中,我们将介绍解决这个问题的方法。

问题分析

当我们尝试使用以下代码创建VideoWriter时,就会遇到这个错误:

import cv2

cap = cv2.VideoCapture(0)

fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.videowriter("output.avi", fourcc, 20.0, (640, 480))

while(cap.isOpened()):
     # 读取视频帧
     ret, frame = cap.read()

     if ret==True:
         # 写入视频帧
         out.write(frame)

         # 显示结果
         cv2.imshow('frame',frame)

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

# 释放所有资源
cap.release()
out.release()
cv2.destroyAllWindows()

错误信息如下:

AttributeError: module 'cv2.cv2' has no attribute 'videowriter'
解决方法

该错误很可能是由于没有正确引入OpenCV模块而导致的。确保你已经按照正确的方式安装了OpenCV模块。

如果是这个问题,尝试以下解决方法:

  • 确保已正确安装OpenCV模块

请确保已按照正确的方式安装了OpenCV模块。在终端中输入以下命令,如果能够成功导入cv2模块,说明已经正确安装了OpenCV:

import cv2

如果出现ImportError,说明需要重新安装OpenCV。

  • 检查OpenCV版本兼容性

该问题很可能是由于OpenCV版本不兼容造成的。请检查使用的OpenCV版本与代码中使用的函数是否兼容。如果不兼容,可以尝试安装更低版本的OpenCV。

  • 修改函数名称

如果上述解决方法都无效,可以尝试将代码中的“cv2.videowriter”修改为“cv2.VideoWriter”。这是因为可能是函数名称已更改,而代码中使用的函数名称不正确。

import cv2

cap = cv2.VideoCapture(0)

fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("output.avi", fourcc, 20.0, (640, 480))

while(cap.isOpened()):
     # 读取视频帧
     ret, frame = cap.read()

     if ret==True:
         # 写入视频帧
         out.write(frame)

         # 显示结果
         cv2.imshow('frame',frame)

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

# 释放所有资源
cap.release()
out.release()
cv2.destroyAllWindows()

以上是解决“模块 'cv2.cv2'没有属性'videowriter'”错误信息的一些解决方法。希望这篇文章对你有所帮助!