实例22:JPG图像信息的访问(图像维数、原点坐标和像素间隔)
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
#include <vtkSmartPointer.h>
#include <vtkImageViewer2.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkImageReader2Factory.h>
#include <vtkImageReader2.h>
#include <vtkJPEGReader.h>//JPEG图像读取类
#include <vtkImageData.h>
//测试图像:../data/lena.jpg
int main(int argc, char* argv[])
{
//实例化一个对象dcmReader
vtkJPEGReader* reader = vtkJPEGReader::New();
reader->SetFileName("lena.jpg");//读取图像
reader->Update();
int dims[3];
reader->GetOutput()->GetDimensions(dims);
std::cout << "图像维数:" << dims[0] << " " << dims[1] << " " << dims[2] << std::endl;
double origin[3];
reader->GetOutput()->GetOrigin(origin);
std::cout << "图像原点:" << origin[0] << " " << origin[1] << " " << origin[2] << std::endl;
double spaceing[3];
reader->GetOutput()->GetSpacing(spaceing);
std::cout << "像素间隔:" << spaceing[0] << " " << spaceing[1] << " " << spaceing[2] << std::endl;
vtkSmartPointer<vtkImageViewer2> imageViewer =
vtkSmartPointer<vtkImageViewer2>::New();
imageViewer->SetInputConnection(reader->GetOutputPort());
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
imageViewer->SetupInteractor(renderWindowInteractor);
imageViewer->Render();
imageViewer->GetRenderer()->ResetCamera();
imageViewer->Render();
imageViewer->GetRenderer()->SetBackground(1.0, 1.0, 1.0);
imageViewer->SetSize(640, 480);
imageViewer->GetRenderWindow()->SetWindowName("GetImageInformationExample");
renderWindowInteractor->Start();
return 0;
}