ITK系列4_ ITK访问图像像素数据

实例4 ITK访问图像像素数据

#include "itkImage.h"
//这个例子阐述了 SetPixel( )和 GetPixel( )方法的用法
//可以直接访问图像中包含的像素数据
int main(int, char *[])
{
  typedef itk::Image< unsigned short, 3 > ImageType;

  ImageType::Pointer image = ImageType::New();

  const ImageType::SizeType  size  = {{ 200, 200, 200}}; //Size along {X,Y,Z}
  const ImageType::IndexType start = {{ 0, 0, 0 }}; // First index on {X,Y,Z}

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

  // Pixel data is allocated
  image->SetRegions( region );
  image->Allocate(true); // initialize buffer to zero
  //对 index 类型实例的声明并进行初始化
  const ImageType::IndexType pixelIndex = {{27,29,37}}; // Position of {X,Y,Z}
  //GetPixel(pixelIndex)方法将可得到pixelIndex处的像素值pixelValue
  ImageType::PixelType   pixelValue = image->GetPixel( pixelIndex );

  std::cout << "pixelIndex处的像素值:"<<pixelValue << std::endl;//输出pixelIndex索引处的像素值pixelValue
  //SetPixel( )方法可设定像素值,将pixelIndex索引处的像素值赋值为pixelValue+1
  image->SetPixel(   pixelIndex,   pixelValue+12  );

  ImageType::PixelType   pixelValue1 = image->GetPixel(pixelIndex);//获取更改后的像素值
  std::cout << "更改后pixelIndex处的像素值:" << pixelValue1 << std::endl;//输出pixelIndex索引处的像素值

  return EXIT_SUCCESS;
}

图像基础:

在这个图表中,圆卷表示像素的中心

像素间距是像素中心之间的距离;如本图表中,X方向像素间距为20,Y方向上像素间距为30;

图像原点是图像中第一个像素的坐标;如图中原点坐标(60,70);

一个像素就是含有数据值的像素中心周围的矩形区域;

图像大小指的是图像长宽方向像素个数相乘;如图中图像大小为7*6=42(像素);

 

ITK系列目录:

1 ITK图像数据表达之图像

2 ITK图像处理之图像滤波

3 ITK图像处理之图像分割

注:例程配套素材见系列目录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦我飞也

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值