Apply Cos Image Filter¶
Synopsis¶
Compute the cosine of each pixel
Results¶
![Input image](../../../../_images/InputRescaled.png)
Rescaled Input image [0, 255]¶
![Output image](../../../../_images/OutputBaselineRescaled.png)
Rescaled Output image [0, 255]¶
Code¶
C++¶
#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
#include "itkCosImageFilter.h"
int
main(int argc, char * argv[])
{
if (argc != 3)
{
std::cerr << "Usage: " << std::endl;
std::cerr << argv[0];
std::cerr << " <InputFileName>";
std::cerr << " <OutputFileName>";
std::cerr << std::endl;
return EXIT_FAILURE;
}
const char * inputFileName = argv[1];
const char * outputFileName = argv[2];
constexpr unsigned int Dimension = 2;
using PixelType = float;
using ImageType = itk::Image<PixelType, Dimension>;
using ReaderType = itk::ImageFileReader<ImageType>;
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName(inputFileName);
using FilterType = itk::CosImageFilter<ImageType, ImageType>;
FilterType::Pointer filter = FilterType::New();
filter->SetInput(reader->GetOutput());
using WriterType = itk::ImageFileWriter<ImageType>;
WriterType::Pointer writer = WriterType::New();
writer->SetFileName(outputFileName);
writer->SetInput(filter->GetOutput());
try
{
writer->Update();
}
catch (itk::ExceptionObject & error)
{
std::cerr << "Error: " << error << std::endl;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
Classes demonstrated¶
-
template<typename
TInputImage
, typenameTOutputImage
>
classCosImageFilter
: public itk::UnaryGeneratorImageFilter<TInputImage, TOutputImage> Computes the cosine of each pixel.
This filter is templated over the pixel type of the input image and the pixel type of the output image.
The filter walks over all of the pixels in the input image, and for each pixel does the following:
cast the pixel value to
double
,apply the
std::cos()
function to thedouble
value,cast the
double
value resulting fromstd::cos()
to the pixel type of the output image,store the cast value into the output image.
The filter expects both images to have the same dimension (e.g. both 2D, or both 3D, or both ND)