创建一个itk::Image,并写入到png文件


#include "itkImage.h"
#include <vtkSmartPointer.h>
#include <vtkPNGWriter.h>
#include <itkImageToVTKImageFilter.h> 
#include <iostream>

void CreateImage(itk::Image<unsigned char, 2>* const image)
{
	// Create an image with 2 connected components
	itk::Image<unsigned char, 2>::IndexType start = { {0,0} };
	start[0] = 0;
	start[1] = 0;

	itk::Image<unsigned char, 2>::SizeType size;
	unsigned int NumRows = 200;
	unsigned int NumCols = 300;
	size[0] = NumRows;
	size[1] = NumCols;

	typename itk::Image<unsigned char, 2>::RegionType region(start, size);

	image->SetRegions(region);
	image->Allocate();

	// Make a square
	for (itk::Image<unsigned char, 2>::IndexValueType r = 10; r < 80; r++)
	{
		for (itk::Image<unsigned char, 2>::IndexValueType c = 20; c < 100; c++)
		{
			itk::Image<unsigned char, 2>::IndexType pixelIndex = { {r,c} };

			image->SetPixel(pixelIndex, 0);
		}
	}

	// Make another square
	for (typename itk::Image<unsigned char, 2>::IndexValueType r = 100; r < 130; r++)
	{
		for (typename itk::Image<unsigned char, 2>::IndexValueType c = 100; c < 160; c++)
		{
			typename itk::Image<unsigned char, 2>::IndexType pixelIndex = { {r,c} };

			image->SetPixel(pixelIndex, 255);
		}
	}

}

int main(int argc, char *argv[])
{
	itk::SmartPointer<itk::Image<unsigned char, 2>> image;
	short distanceThreshold = 4;

	image = itk::Image<unsigned char, 2>::New();
	CreateImage(image.GetPointer());
	image->Update();

	// 输出新建的itk::Image
	auto imageToVtkImage = itk::ImageToVTKImageFilter<itk::Image<unsigned char, 2>>::New();
	imageToVtkImage->SetInput(image.GetPointer());
	imageToVtkImage->Update();

	vtkSmartPointer<vtkPNGWriter> writer = vtkSmartPointer<vtkPNGWriter>::New();
	writer->SetFileName("E:/CreateImage.png");
	writer->SetInputData(imageToVtkImage->GetOutput());
	writer->Write();

	std::cout << "return ok" << std::endl;

	return EXIT_SUCCESS;
}

itk::Image itk::ImageToVTKImageFilter vtkPNGWriter

相关文章:

  • 2021-08-02
  • 2021-09-20
  • 2021-09-14
  • 2021-08-15
  • 2021-06-29
  • 2021-08-01
  • 2021-11-08
  • 2021-07-15
猜你喜欢
  • 2021-07-05
  • 2021-05-29
  • 2021-09-02
  • 2021-11-22
  • 2022-12-23
  • 2021-12-01
相关资源
相似解决方案