这是我的代码。
mm.dd.yyyy
当我创建Video类的实例并尝试进行深度复制时,会出现此错误。
if (isNaN(StartDateEnfant.valueOf()) || isNaN(OData__EndDateEnfant.valueOf())) {
StartDateEnfant = new Date(startDate.replace(/(\d{2})[- /.](\d{2})[- /.](\d+)/, "$2/$1/$3"));
OData__EndDateEnfant = new Date(endDate.replace(/(\d{2})[- /.](\d{2})[- /.](\d+)/, "$2/$1/$3"));
}
错误:
<< strong>主要。视频对象位于0x103496630> 追溯(最近一次通话): 在第28行的文件“ test.py”中 打印(深拷贝(视频)) 深度复制中的文件“ /Users/tigranfahradyan/.local/share/virtualenvs/pyvideoproc-x3IHrdzn/lib/python3.7/copy.py” y = _reconstruct(x,备忘录,* rv) _reconstruct中的文件“ /Users/tigranfahradyan/.local/share/virtualenvs/pyvideoproc-x3IHrdzn/lib/python3.7/copy.py”,第280行 状态=深度复制(状态,备注) 在Deepcopy中的文件“ /Users/tigranfahradyan/.local/share/virtualenvs/pyvideoproc-x3IHrdzn/lib/python3.7/copy.py”,第150行 y =复印机(x,备忘) _deepcopy_dict中的第240行,文件“ /Users/tigranfahradyan/.local/share/virtualenvs/pyvideoproc-x3IHrdzn/lib/python3.7/copy.py” y [deepcopy(键,备忘录)] = deepcopy(值,备忘录) 深度复制中的文件“ /Users/tigranfahradyan/.local/share/virtualenvs/pyvideoproc-x3IHrdzn/lib/python3.7/copy.py” rv =减速器(4) TypeError:无法腌制cv2.VideoCapture对象
但是当我删除'cv2.VideoCapture(path)'时,一切正常。
import cv2
import numpy as np
from copy import deepcopy
class Video:
def __init__(self, path):
self.name = path.split('/')[-1]
self.cap = cv2.VideoCapture(path)
输出:
<< strong>主要。位于0x10d0f7c18的视频对象 << strong>主要。视频对象位于0x119693eb8>
答案 0 :(得分:0)
我已经想出了解决方法,但是我确信这不是最好的方法。由于某些原因,当您尝试深复制具有设置为'cv2.VideoCapture(path_to_video)'的字段的类的实例时,它会产生错误。
但是您可以使用这样的局部变量。
import cv2
class Test:
def __init__(self):
cap = cv2.VideoCapture(path_to_video)
"""This will probably give an error for you
if you try to deepcopy the instance of this class"""
# self.cap = cv2.VideoCapture(path_to_video)