VTK修炼之道17:图像基本操作_图像信息的访问与修改(vtkImageData)
生活随笔
收集整理的這篇文章主要介紹了
VTK修炼之道17:图像基本操作_图像信息的访问与修改(vtkImageData)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.利用vtkImageData實現圖像信息的訪問與修改
vtkImageData中提供了多個函數用于訪問或者獲取圖像的基本信息,這些函數通常使用Set或者Get加上相應的信息名的形式,例如獲取圖像維數的方法定義為GetDimensions()。2.實驗程序及運行結果
#include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL);#include <vtkSmartPointer.h> #include <vtkBMPReader.h> #include <vtkImageData.h> #include <vtkImageViewer2.h> #include <vtkRenderer.h> #include <vtkRenderWindow.h> #include <vtkRenderWindowInteractor.h>int main() {//讀數據vtkSmartPointer<vtkBMPReader> reader =vtkSmartPointer<vtkBMPReader>::New();reader->SetFileName("lena.bmp");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 spacing[3];reader->GetOutput()->GetSpacing(spacing);std::cout << "圖像間距:" << spacing[0] << " " << spacing[1] << " " << spacing[2] << std::endl;//顯示圖像vtkSmartPointer<vtkImageViewer2> imgViewer =vtkSmartPointer<vtkImageViewer2>::New();imgViewer->SetInputConnection(reader->GetOutputPort());vtkSmartPointer<vtkRenderWindowInteractor> rwi =vtkSmartPointer<vtkRenderWindowInteractor>::New();imgViewer->SetupInteractor(rwi);imgViewer->Render();imgViewer->GetRenderer()->ResetCamera();imgViewer->Render();imgViewer->GetRenderer()->SetBackground(1.0, 1.0, 1.0);imgViewer->SetSize(640,480);imgViewer->GetRenderWindow()->SetWindowName("GetImageInfo");rwi->Start();return 0; }?運行結果:
這個例子主要獲取圖像的三個信息:圖像維數、圖像原點、像素間隔。VTK中二維和三維圖像都用vtkImageData表示,因此首先定義圖像維數為dims[3],然后利用GetDimensions()函數獲取圖像的維數;圖像的原點和像素間隔都是物理空間數值,因此都是定義double類型。其中,圖像維數為512*512*1,通過維數可以看成z方向的維數為1,說明該圖像為二維圖像;而圖像的原點為(0,0,0)點,而像素間隔為(1,1,1)。
總結
以上是生活随笔為你收集整理的VTK修炼之道17:图像基本操作_图像信息的访问与修改(vtkImageData)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++获取高精度时间
- 下一篇: 最近在SDK下使用WebBrowser遇