QVTKWidget显示JPG图像
#include "qvtkShowJpg.h"
#include <QVTKWidget.h>
#include <vtkImageViewer2.h>
#include <vtkJPEGReader.h>
#include <vtkPNGReader.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkImageActor.h>
qvtkShowJpg::qvtkShowJpg(QWidget* parent)
: QMainWindow(parent)
{
ui.setupUi(this);
m_ImageViewer = vtkSmartPointer<vtkImageViewer2>::New();
m_Renderder = vtkSmartPointer<vtkRenderer>::New();//渲染器
// 设置qvtkWidget的渲染器
ui.qvtkWidget->GetRenderWindow()->AddRenderer(m_Renderder);
// 用vtkJPEGReader读取JPG图像
vtkSmartPointer<vtkJPEGReader> reader = vtkSmartPointer<vtkJPEGReader>::New();
reader->SetFileName("D:\\File\\Image\\lenna.jpg");
reader->Update();// 不调用update时,调用GetOutput()函数没有数据
// 将reader的输出作为m_ImageViewer的输入,并设置m_ImageViewer与渲染器m_Renderer的关联
m_ImageViewer->SetInputData(reader->GetOutput());
m_ImageViewer->UpdateDisplayExtent();
m_ImageViewer->SetRenderWindow(ui.qvtkWidget->GetRenderWindow());//设置为同一个渲染窗口
m_ImageViewer->SetRenderer(m_Renderder);
m_ImageViewer->SetupInteractor(ui.qvtkWidget->GetRenderWindow()->GetInteractor());//交互方式
m_ImageViewer->SetSliceOrientationToXY();//默认为这个方向
m_ImageViewer->GetImageActor()->InterpolateOff();
m_Renderder->ResetCamera();
m_Renderder->DrawOn();
ui.qvtkWidget->GetRenderWindow()->Render();//自动绘制出图像
}