Я пытаюсь открыть окно vtk, используя vtk_show, но моя консоль Ipython падает каждый раз, когда я делаю это, по-видимому, это потому, что Ipython не может отобразить внешнее окно, что в точности и делает vtk_show. Я искал в Google решение, но оно написано для python2 (я использую python 3.6.3). Вот решение, которое я нашел:
import vtk
from IPython.display import Image
def vtk_show(renderer, width=400, height=300):
"""
Takes vtkRenderer instance and returns an IPython Image with the
rendering.
"""
renderWindow = vtk.vtkRenderWindow()
renderWindow.SetOffScreenRendering(1)
renderWindow.AddRenderer(renderer)
renderWindow.SetSize(width, height)
renderWindow.Render()
windowToImageFilter = vtk.vtkWindowToImageFilter()
windowToImageFilter.SetInput(renderWindow)
windowToImageFilter.Update()
writer = vtk.vtkPNGWriter()
writer.SetWriteToMemory(1)
writer.SetInputConnection(windowToImageFilter.GetOutputPort())
writer.Write()
data = str(buffer(writer.GetResult()))
return Image(data)
Я получаю сообщение об ошибке при попытке использовать встроенную функцию buffer
python2, но так как эта функция не существует в python3 +, я застрял .. Если кто-нибудь может мне помочь с этим, я был бы очень ценится Заранее спасибо!