10 #include <QVTKOpenGLNativeWidget.h>
12 #include <vtkDelaunay2D.h>
13 #include <vtkDiskSource.h>
14 #include <vtkDoubleArray.h>
15 #include <vtkImageData.h>
16 #include <vtkIntArray.h>
17 #include <vtkPlaneSource.h>
18 #include <vtkPointData.h>
19 #include <vtkPoints.h>
20 #include <vtkPolyData.h>
21 #include <vtkPolyDataMapper.h>
22 #include <vtkQImageToImageSource.h>
23 #include <vtkRenderWindow.h>
24 #include <vtkRenderer.h>
25 #include <vtkSphereSource.h>
26 #include <vtkVRMLExporter.h>
29 #include <QThreadPool>
36 if (!imageData)
return QImage();
39 int width = imageData->GetDimensions()[0];
40 int height = imageData->GetDimensions()[1];
43 unsigned char* colorsPtr =
44 reinterpret_cast<unsigned char*
>(imageData->GetScalarPointer());
46 for (
int row = 0; row <
height; ++row) {
47 for (
int col = 0; col <
width; ++col) {
50 QColor(colorsPtr[0], colorsPtr[1], colorsPtr[2]).rgb();
60 qDebug() <<
"null image data.";
66 qimageToImageSource->SetQImage(&img);
67 qimageToImageSource->Update();
68 imageData->DeepCopy(qimageToImageSource->GetOutput());
72 if (!widget)
return QImage();
80 QThreadPool::globalInstance()->start(exporter);
std::shared_ptr< core::Tensor > image
void exportActorToFile(vtkActor *actor, const QString &outfile)
QImage vtkImageDataToQImage(vtkImageData *imageData)
void qImageToVtkImage(QImage &img, vtkImageData *imageData)
QImage vtkWidgetSnapshot(QVTKOpenGLNativeWidget *widget)