属性错误:无法腌制本地对象"SharedMemoryDisplay.__init__。<locals>.<lambda>'



我正在上面的脚本中处理这个对象SharedMemoryDisplay,我想返回/检索self.camera_container,其中self.camera_container = {camera_id: (camera_id, frame, frame_properties)}我试图创建一个方法来返回这个,但它给出了两个错误

prop, camera_container = monitor_memory.get_frame()
TypeError: 'NoneType' object is not iterable
AttributeError: Can't pickle local object 'SharedMemoryDisplay.__init__.<locals>.<lambda>'

我只能获得self-camera_container[key],如果我只是这样做的话,这很好,但我也想获得self-camera_container。

return self.camera_container[key]

在下面的脚本中,我使用这个对象在一个名为cv2的窗口中显示,我的最终动机是分别检索所有相机的帧。它目前所做的是连接所有相机帧,并通过self.display_frame返回,该帧添加到下面脚本中的webdisplay_memory中(用于在html中显示(,这就是为什么我创建了一个检索字典camera_container的方法。webdisplay_memory.add_frame(0,self.display_frame,无(与其摆弄这个变量,我想创建一个返回self.camera_container的方法,而不是使用它来分别获取每个相机的帧。

我该如何克服这一点,如果你有更好、有效的解决方案,请帮忙!

multiprocessing在引擎盖下使用picklepickle只能序列化一组特定的对象。具体来说,它不能序列化defaultdict(camera_container的类型(。因此,要么使用普通的dict并将所有查找替换为self.camera_container.get(key, None),要么研究这个问题并尝试将pathos.multiprocessingdill一起使用。不过,后一种方法没有经过我的检验。

相关内容

  • 没有找到相关文章

最新更新