1

したがって、キャンバス上の画像のサイズを変更しようとすると、matplotlib から「RuntimeError: 画像にメモリを割り当てられませんでした」というメッセージが表示されます。画像は、ctypes の PyMem_Malloc を使用してメモリが割り当てられた大きな DICOM (.dcm) ファイルです。ピクセルあたり 16 ビットが割り当てられています (高解像度である必要があります)。問題は、キャンバスのサイズを変更し、次を使用してサイズ変更された画像を描画しようとした後に発生します。

self.view.canvas.draw()

スローされる特定の例外は次のとおりです。

Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\matplotlib\backends\backend_wx.py", line 1355, in _onMotion
    FigureCanvasBase.motion_notify_event(self, x, y, guiEvent=evt)
  File "C:\Python27\lib\site-packages\matplotlib\backend_bases.py", line 1625, in motion_notify_event
    self.callbacks.process(s, event)
  File "C:\Python27\lib\site-packages\matplotlib\cbook.py", line 265, in process
    proxy(*args, **kwargs)
  File "C:\Python27\lib\site-packages\matplotlib\cbook.py", line 191, in __call__
    return mtd(*args, **kwargs)
  File "C:\Python27\lib\site-packages\matplotlib\widgets.py", line 1258, in onmove
    self.update()
  File "C:\Python27\lib\site-packages\matplotlib\widgets.py", line 1236, in update
    self.canvas.restore_region(self.background)
  File "C:\Python27\lib\site-packages\matplotlib\backends\backend_agg.py", line 384, in restore_region
    renderer = self.get_renderer()
  File "C:\Python27\lib\site-packages\matplotlib\backends\backend_agg.py", line 404, in get_renderer
    self.renderer = RendererAgg(w, h, self.figure.dpi)
  File "C:\Python27\lib\site-packages\matplotlib\backends\backend_agg.py", line 59, in __init__
    self._renderer = _RendererAgg(int(width), int(height), dpi, debug=False)
RuntimeError: Could not allocate memory for image

画像自体にこれ以上の割り当ては必要ありませんよね?では、ここで何が問題になるのでしょうか? matplotlib は、キャンバスが保持できるメモリのサイズを制限しますか? 誰かがこの問題を抱えていますか?

4

0 に答える 0