MITK获取Image元素位置并修改数据

    auto workingImage = dynamic_cast<mitk::Image *>(node->GetData());
    auto region = workingImage->GetLargestPossibleRegion();
    mitk::BaseGeometry::Pointer geometry = workingImage->GetGeometry();
    mitk::ImageWriteAccessor writeAccessor(workingImage);
    unsigned short *pixelData = static_cast<unsigned short *>(writeAccessor.GetData());

    auto size = region.GetSize();

 #pragma omp parallel for // 使用openmp加速,不加速可以注释掉
    for (int idZ = region.GetIndex()[2]; idZ < size[2]; ++idZ)
    {
      int zoffset = idZ * size[0] * size[1];
      for (int idY = region.GetIndex()[1]; idY < size[1]; ++idY)
      {
        int yoffset = idY * size[0];
        for (int idX = region.GetIndex()[0]; idX < size[0]; ++idX)
        {
          int linearIndex = idX + yoffset + zoffset;
          unsigned short& pixelValue = pixelData[linearIndex];

          // Image元素坐标转为世界坐标
          mitk::Point3D worldPoint;
          auto idx = region.GetIndex();
          idx[0] = idX;
          idx[1] = idY;
          idx[2] = idZ;
          geometry->IndexToWorld(idx, worldPoint);
   
          if (somewhat...)
            pixelValue = 0; // 修改Image元素值
        }
      }
    }
    workingImage->Modified();

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值