请教:ITK读取VTK显示BMP图像---能编译运行,但显示不出图像。
vtk吧
全部回复
仅看楼主
level 1
datubei 楼主
RT,VTK6.1,VS2008,代码如下:
#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL)
#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)
#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkImageToVTKImageFilter.h"
#include "vtkImageViewer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkImageActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include <iostream>
using namespace std;
int main( int argc, char **argv)
{
typedef itk::Image<unsigned short,2> ImageType;
typedef itk::ImageFileReader<ImageType> ReaderType;// 文件读取器
typedef itk::ImageToVTKImageFilter<ImageType> ConnectorType; // VTK与ITK链接器
ReaderType::Pointer reader= ReaderType::New();
ConnectorType::Pointer connector= ConnectorType::New();
reader->SetFileName("lena.bmp");
connector->SetInput(reader->GetOutput());
vtkImageActor *actor = vtkImageActor::New();
actor->SetInputData(connector->GetOutput());
vtkRenderer * ren = vtkRenderer::New();
ren->AddActor(actor);
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(ren);
vtkImageViewer* viewer= vtkImageViewer::New();
// 绘制窗口交互器
vtkRenderWindowInteractor* renderWindowInteractor=vtkRenderWindowInteractor::New();
viewer->SetInputData( connector->GetOutput() );
viewer->SetupInteractor( renderWindowInteractor);
viewer->SetColorWindow( 255);
viewer->SetColorLevel( 128);
viewer->Render();
renderWindowInteractor->Initialize();
renderWindowInteractor->Start();
system("pause");
//cin.get();
return 0;
}
2015年01月29日 02点01分 1
level 12
这个显然又是vtk6.1的问题~
2015年01月30日 01点01分 2
level 12
官方解释:
2015年01月30日 01点01分 3
level 12
You need to #define those symbols(象征) *BEFORE* including any VTK header
2015年01月30日 01点01分 4
level 12
贴一下报什么错
2015年01月30日 01点01分 5
level 1
datubei 楼主
@rabbitbride:谢谢吧主。上面程序在没有加
#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL)
#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)
之前,没有编译错误,但执行时出现
指向coneMapper->SetInputConnection( cone->GetOutputPort() );貌似没有正确分配内存。
加了#define之后,编译同样没有错误,也能够正常弹出command窗和Visualization Toolbox窗,
但是Visualization Toolbox窗内一片黑,并未将lena图像正确显示出来,跟代码发现
reader->SetFileName("lena.bmp");
reader内貌似没有正确加载图像信息,打开指针全是计算错误之类的提示。
2015年01月30日 06点01分 6
level 1
datubei 楼主
如图:未能正确显示lena
2015年01月30日 07点01分 7
楼主是怎么解决的,我也遇到同样的问题
2016年12月05日 08点12分
level 1
我最近也遇到这问题,原因是connector没有update
2015年06月10日 05点06分 9
貌似你连reader也没有update
2015年06月10日 05点06分
还有BMP图像像素类型不能用unsigned short,应改成unsigned char
2015年06月10日 05点06分
2016年11月21日 05点11分
@rabbitbride [汗]都一年半了...
2016年11月21日 17点11分
1