mayavi mlab.contour3d 플롯을 vtkPolyData로 변환

이안

나는 삼각 얻기 위해 노력하고 vtkPolyDataA로부터 mlab.contour3d줄거리. 내가 사용하고 mayavi그것을 얻을 수있는 가장 빠른 방법이있을 것 때문에 최소한의 표면이 제대로 삼각. vtkPolyData.stl 파일로 저장하고 싶기 때문에 필요 합니다.

다음은 내 코드의 MWE입니다.

import numpy as np
from mayavi import mlab

def fun(x, y, z):
    return np.cos(x) + np.cos(y) + np.cos(z)

x, y, z = np.mgrid[-1:1:100j, -1:1:100j, -1:1:100j]
contour = mlab.contour3d(x, y, z, fun)
mlab.show()

내가 얻은 mayavi것은 이미 삼각 측량되어 VTK(또는 tvtk)을 사용하여 표시된 표면 이므로 vtkPolyData거기에서 가져올 수 있습니다. 하지만 지금까지 발견 된 유일한 방법은 사용하는 것입니다 mlab.savefig(test.obj)(이 파일마다 저장하는 데 시간이 걸리기 때문에, 불량 인 .OBJ 파일을 내보낼 mayavi및 파일을 다시 사용하여 해당 수입 UI가 열립니다) vtkOBJReader중동를 제공, vtkPolyData내가 원하는합니다.

누구든지 이것을 수행하는 더 직접적인 방법을 알고 있습니까?

편집 : 내 문제를 좀 더 명확히하기 위해 : 예를 들어를 사용하여 시각화에서 데이터에 액세스 할 수 mayavi.tools.pipeline.get_vtk_src()있지만 형식은 vtkImageData. 누구든지 그것을으로 변환하는 방법을 알고 있다면 vtkPolyData그것도 해결책이 될 것입니다.

이안

우연히 나는 해결책을 찾았습니다.

import numpy as np
from mayavi import mlab

def fun(x, y, z):
    return np.cos(x) + np.cos(y) + np.cos(z)

x, y, z = np.mgrid[-1:1:100j, -1:1:100j, -1:1:100j]
contour = mlab.contour3d(x, y, z, fun)
actor = contour.actor.actors[0]
polydata = tvtk.to_vtk(actor.mapper.input)  # solution
mlab.show()

트릭은 PolyDataMapper 인 파이프 라인에서 매퍼에 액세스하는 것 같습니다. 그런 다음 적어도 지금은 내가 선호하는 것을 tvtk.to_vtk()계속할 수 있도록 함수를 사용합니다 .vtktvtk

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

mlab / mayavi 플롯을 조작하기위한 구문을 어떻게 빨리 찾을 수 있습니까?

분류에서Dev

Tkinter 캔버스에는 mayavi.mlab 플롯이 포함되어 있습니다.

분류에서Dev

플롯 그림을 배열로 변환

분류에서Dev

MATLAB 선 플롯을 STL로 변환

분류에서Dev

플롯에서 등고선 플롯을 3 차원 표면으로 변경

분류에서Dev

Mayavi Mlab : 팔면체 그리기

분류에서Dev

MLab 및 Beanstalk 및 Swift AppDelegate로 변환 구문 분석

분류에서Dev

R : 플롯을 위해 tidyverse를 dplyr / reshape2로 변환

분류에서Dev

R에서 arulesViz 플롯을 htmlwidget으로 변환하는 방법

분류에서Dev

D3에서 메뉴를 선택하여 이전 플롯을 제거하고 새 플롯으로 전환하는 방법

분류에서Dev

플롯을 만들기 위해 CSV를 ndarray로 변환해야합니까?

분류에서Dev

시퀀스 표현식을 R 플롯 레이블의 문자열로 변환

분류에서Dev

R에서 일련의 플롯을 애니메이션 시퀀스로 변환

분류에서Dev

Matlab 플롯-이중을 핸들로 변환 할 수 없습니다.

분류에서Dev

3D 변환을 2D로 변환

분류에서Dev

R 막대 플롯을 미분 풍부도 플롯으로 변경

분류에서Dev

불규칙한 간격의 샘플이있는 2D 컬러 플롯 (matplotlib.mlab.griddata)

분류에서Dev

MATLAB의 3D 플롯에 대한 다음 코드를 Gnuplot 용 코드로 변환 하시겠습니까?

분류에서Dev

MATLAB, 4049 행 x 50 열 분광기 데이터를 3D 플롯으로 변환

분류에서Dev

mayavi 볼륨 렌더링에서 특성으로 ctf otf 변경 사항을 수신합니다.

분류에서Dev

blockmodel : json을 .x3d로 변환

분류에서Dev

2D 플롯을 3D로 확장

분류에서Dev

깔끔한 형식으로 변환하고 동일한 플롯에 4 개의 밀도 플롯을 플로팅합니다.

분류에서Dev

Mayavi에서 기울기 벡터 장 플로팅

분류에서Dev

변수에 플롯을 할당하고 변수를 Python 함수의 반환 값으로 사용하는 방법

분류에서Dev

Python 3 : 튜플을 사전으로 변환

분류에서Dev

Hough 변환 및 해당 플롯 정보 (플롯 할 3 개 점 포함)

분류에서Dev

막대 차트 색상 변경을 플롯으로 표현

분류에서Dev

geom_tile 플롯의 y 축을 변수로 정렬

Related 관련 기사

  1. 1

    mlab / mayavi 플롯을 조작하기위한 구문을 어떻게 빨리 찾을 수 있습니까?

  2. 2

    Tkinter 캔버스에는 mayavi.mlab 플롯이 포함되어 있습니다.

  3. 3

    플롯 그림을 배열로 변환

  4. 4

    MATLAB 선 플롯을 STL로 변환

  5. 5

    플롯에서 등고선 플롯을 3 차원 표면으로 변경

  6. 6

    Mayavi Mlab : 팔면체 그리기

  7. 7

    MLab 및 Beanstalk 및 Swift AppDelegate로 변환 구문 분석

  8. 8

    R : 플롯을 위해 tidyverse를 dplyr / reshape2로 변환

  9. 9

    R에서 arulesViz 플롯을 htmlwidget으로 변환하는 방법

  10. 10

    D3에서 메뉴를 선택하여 이전 플롯을 제거하고 새 플롯으로 전환하는 방법

  11. 11

    플롯을 만들기 위해 CSV를 ndarray로 변환해야합니까?

  12. 12

    시퀀스 표현식을 R 플롯 레이블의 문자열로 변환

  13. 13

    R에서 일련의 플롯을 애니메이션 시퀀스로 변환

  14. 14

    Matlab 플롯-이중을 핸들로 변환 할 수 없습니다.

  15. 15

    3D 변환을 2D로 변환

  16. 16

    R 막대 플롯을 미분 풍부도 플롯으로 변경

  17. 17

    불규칙한 간격의 샘플이있는 2D 컬러 플롯 (matplotlib.mlab.griddata)

  18. 18

    MATLAB의 3D 플롯에 대한 다음 코드를 Gnuplot 용 코드로 변환 하시겠습니까?

  19. 19

    MATLAB, 4049 행 x 50 열 분광기 데이터를 3D 플롯으로 변환

  20. 20

    mayavi 볼륨 렌더링에서 특성으로 ctf otf 변경 사항을 수신합니다.

  21. 21

    blockmodel : json을 .x3d로 변환

  22. 22

    2D 플롯을 3D로 확장

  23. 23

    깔끔한 형식으로 변환하고 동일한 플롯에 4 개의 밀도 플롯을 플로팅합니다.

  24. 24

    Mayavi에서 기울기 벡터 장 플로팅

  25. 25

    변수에 플롯을 할당하고 변수를 Python 함수의 반환 값으로 사용하는 방법

  26. 26

    Python 3 : 튜플을 사전으로 변환

  27. 27

    Hough 변환 및 해당 플롯 정보 (플롯 할 3 개 점 포함)

  28. 28

    막대 차트 색상 변경을 플롯으로 표현

  29. 29

    geom_tile 플롯의 y 축을 변수로 정렬

뜨겁다태그

보관