《itk实用demo》-ROI提取

本文提供了一个使用ITK库进行图像区域(ROI)提取的C++示例代码。该示例展示了如何读取图像文件,并定义感兴趣区域进行裁剪。通过命令行参数可以灵活设置裁剪起点和尺寸。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ROI提取

#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkRegionOfInterestImageFilter.h"
#include "itkRGBPixel.h"

#include <iostream>
#include <string>

int main(int argc, char *argv[])
{
  std::string filename = argv[1];

  typedef itk::Image<itk::RGBPixel<unsigned char>, 2> ImageType;
  typedef itk::ImageFileReader<ImageType>             ReaderType;

  ReaderType::Pointer reader = ReaderType::New();
  reader->SetFileName(filename.c_str());
  reader->Update();

  ImageType::SizeType inSize = reader->GetOutput()->GetLargestPossibleRegion().GetSize();

  typedef itk::RegionOfInterestImageFilter< ImageType, ImageType > FilterType;
  FilterType::Pointer filter = FilterType::New();

  ImageType::IndexType start;
  start[0] = inSize[0]/4;
  start[1] = inSize[1]/4;

  ImageType::SizeType size;
  size[0] = inSize[0]/4;
  size[1] = inSize[1]/4;

  if (argc > 2)
    {
    start.Fill(atoi(argv[2]));
    }
  if (argc > 3)
    {
    size.Fill(atoi(argv[3]));
    }


  ImageType::RegionType desiredRegion;
  desiredRegion.SetSize(size);
  desiredRegion.SetIndex(start);

  filter->SetRegionOfInterest(desiredRegion);
  filter->SetInput(reader->GetOutput());


  return EXIT_SUCCESS;
}
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值