关于ITK 获取图像尺寸的小小疑问
vtk吧
全部回复
仅看楼主
level 2
hisenginger 楼主
初学ITK,想获取读取图像的尺寸,百度搜了几个,用的代码如下,可是为什么返回值总是 0 呢?还请各位同仁指导,多谢啦。
#include "itkCastImageFilter.h"
#include <itkImage.h>
#include "itkImage.h"
#include "itkCastImageFilter.h"
#include "itkCurvatureFlowImageFilter.h"
#include "itkImageFileReader.h"
#include <itkImageBase.h>
void main()
{
typedef unsigned char PixelType;
const unsigned int Dimension = 3;
typedef itk::Image< PixelType, Dimension > ImageType;
ImageType::Pointer image;
typedef unsigned char InternalPixelType;
typedef itk::Image< InternalPixelType, Dimension > InternalImageType;
typedef itk::ImageFileReader< InternalImageType > ReaderType;
ReaderType::Pointer reader_png_itk = ReaderType::New();
reader_png_itk->SetFileName("C:\\Users\\rolle\\Desktop\\01.png");
image = reader_png_itk->GetOutput();
int x = image->GetLargestPossibleRegion().GetSize()[0];
int y = image->GetLargestPossibleRegion().GetSize()[1];
int z = image->GetLargestPossibleRegion().GetSize()[2];
std::cout <<x<<" "<<y<<" "<<z<< std::endl;
}
2016年08月12日 14点08分 1
level 15
你试试reader的正确读入了么。png应该是二维吧。dimension=3可以吗
2016年08月12日 14点08分 3
换成2 也不对啊 , 还是0 。 层主有什么好的办法么?
2016年08月13日 10点08分
@hisenginger 逐步调试看看reader是否正确读入,或者用vtk看看能不能显示。
2016年08月13日 13点08分
@芒果雪冰🍦 可以显示的~~~我再想想~~多谢你啦
2016年08月13日 14点08分
level 12
获取之前
reader_png_itk->update()
2016年08月15日 02点08分 4
我也这么觉得,因为没有读入图像到内存中,所以提取不到。。 然后像之前一个层主说的,png是2维,[呵呵]
2017年10月30日 01点10分
level 1
#include "itkImage.h"
#include "itkImageFileReader.h"
int main(int argc, char ** argv)
{
if(argc<2){
std::cout<<"missing param: "<<argv[0]<<" ,3D Image File Name"<<std::endl;//用三维图像作为输入
}
typedef unsigned char PixelType;
const unsigned int Dimension = 3;
typedef itk::Image< PixelType, Dimension > ImageType;
ImageType::Pointer image;
typedef unsigned char InternalPixelType;
typedef itk::Image< InternalPixelType, Dimension > InternalImageType;
typedef itk::ImageFileReader< InternalImageType > ReaderType;
ReaderType::Pointer reader_png_itk = ReaderType::New();
reader_png_itk->SetFileName(argv[1]);
reader_png_itk->Update();//这边加了一句
image = reader_png_itk->GetOutput();
int x = image->GetLargestPossibleRegion().GetSize()[0];
int y = image->GetLargestPossibleRegion().GetSize()[1];
int z = image->GetLargestPossibleRegion().GetSize()[2];
std::cout <<x<<" "<<y<<" "<<z<< std::endl;
return 0;
}
2017年10月30日 02点10分 5
1