【Python】問題解決:TypeError: cannot pickle 'cv2.VideoCapture' object

前言

此為以下問題的解決方法筆記:

TypeError: cannot pickle 'cv2.VideoCapture' object

解法

此問題會發生在 cv2 結合 multiprocessing 使用時,
cv2.VideoCapture 不可作為成員變數使用。

參考:https://github.com/MVIG-SJTU/AlphaPose/issues/164

會跳錯的範例:

  • 將 cv2.VideoCapture 作為成員變數使用
self.vc = cv2.VideoCapture(self.video_path)

正確寫法:

  • 將 cv2.VideoCapture 作為 local variable
vc = cv2.VideoCapture(self.video_path)

Reference

https://github.com/MVIG-SJTU/AlphaPose/issues/164

Licensed under CC BY-NC-SA 4.0