itk中的基本数学运算

数字图像处理的本质就是数学运算,今天我们看下itk中的有哪些基本的数学运算。

//1、加,减,乘(注意,没有除哦)
#include "itkAddImageFilter.h"//加
#include "itkSubtractImageFilter.h"//减
#include "itkMultiplyImageFilter.h"//乘

typedef itk::AddImageFilter <ImageType, ImageType >	mathFilterType;
mathFilterType::Pointer mathFilter	= mathFilterType::New ();
mathFilter->SetInput1(input1);
mathFilter->SetInput2(input2);
mathFilter->Update();

typedef itk::SubtractImageFilter <ImageType, ImageType >	mathFilterType;
mathFilterType::Pointer mathFilter	= mathFilterType::New ();
mathFilter->SetInput1(input1);
mathFilter->SetInput2(input2);
mathFilter->Update();

typedef itk::MultiplyImageFilter <ImageType, ImageType >	mathFilterType;
mathFilterType::Pointer mathFilter	= mathFilterType::New ();
mathFilter->SetInput1(input1);
mathFilter->SetInput2(input2);
mathFilter->Update();

//2、与,或,非
#include "itkAndImageFilter.h"//与
#include "itkOrImageFilter.h"//或
#include "itkBinaryNotImageFilter.h"//非

typedef itk::AndImageFilter <ImageType, ImageType >	mathFilterType;
mathFilterType::Pointer mathFilter	= mathFilterType::New ();
mathFilter->SetInput1(input1);
mathFilter->SetInput2(input2);
mathFilter->Update();

typedef itk::OrImageFilter <ImageType, ImageType >	mathFilterType;
mathFilterType::Pointer mathFilter	= mathFilterType::New ();
mathFilter->SetInput1(input1);
mathFilter->SetInput2(input2);
mathFilter->Update();

typedef itk::BinaryNotImageFilter <ImageType>       mathFilterType; 
mathFilterType::Pointer mathFilter = mathFilterType::New();
mathFilter ->SetInput(input1);
mathFilter ->Update();

//3、膨胀,腐蚀,开,闭
#include "itkBinaryBallStructuringElement.h"//基本球形
#include "itkBinaryMorphologicalOpeningImageFilter.h"//开运算
#include "itkBinaryMorphologicalClosingImageFilter.h"//闭运算
#include "itkGrayscaleErodeImageFilter.h"//灰度膨胀
#include "itkGrayscaleDilateImageFilter.h"//灰度膨胀
#include "itkBinaryDilateImageFilter.h"//二值膨胀
#include "itkBinaryErodeImageFilter.h"//二值膨胀

typedef itk::BinaryBallStructuringElement<ImageType::PixelType, ImageType::ImageDimension>
StructuringElementType;
StructuringElementType structuringElement;
structuringElement.SetRadius(rad);
structuringElement.CreateStructuringElement();

typedef itk::BinaryMorphologicalOpeningImageFilter <ImageType, ImageType, StructuringElementType> BinaryMorphologicalOpeningImageFilterType;
BinaryMorphologicalOpeningImageFilterType::Pointer mathOperationFilter
			= BinaryMorphologicalOpeningImageFilterType::New();
mathOperationFilter->SetInput(*input);
mathOperationFilter->SetKernel(structuringElement);
mathOperationFilter->Update();

typedef itk::BinaryMorphologicalClosingImageFilter <ImageType, ImageType, StructuringElementType>	BinaryMorphologicalClosingImageFilterType;
BinaryMorphologicalClosingImageFilterType::Pointer mathOperationFilter
			= BinaryMorphologicalClosingImageFilterType::New();
mathOperationFilter->SetInput(*input);
mathOperationFilter->SetKernel(structuringElement);
mathOperationFilter->Update();

typedef itk::GrayscaleErodeImageFilter <ImageType, ImageType, StructuringElementType>
			GrayscaleErodeImageFilterType;
GrayscaleErodeImageFilterType::Pointer mathOperationFilter = GrayscaleErodeImageFilterType::New();
mathOperationFilter->SetInput(*input);
mathOperationFilter->SetKernel(structuringElement);
mathOperationFilter->Update();

typedef itk::GrayscaleDilateImageFilter <ImageType, ImageType, StructuringElementType>
			GrayscaleDilateImageFilterType;
GrayscaleDilateImageFilterType::Pointer mathOperationFilter = GrayscaleDilateImageFilterType::New();
mathOperationFilter->SetInput(*input);
mathOperationFilter->SetKernel(structuringElement);
mathOperationFilter->Update();

typedef itk::BinaryErodeImageFilter  <ImageType, ImageType, StructuringElementType>
			BinaryErodeImageFilter ;
BinaryErodeImageFilter ::Pointer mathOperationFilter = BinaryErodeImageFilter ::New();
mathOperationFilter->SetInput(*input);
mathOperationFilter->SetKernel(structuringElement);
mathOperationFilter->Update();

typedef itk::BinaryDilateImageFilter  <ImageType, ImageType, StructuringElementType>
			BinaryDilateImageFilter ;
BinaryDilateImageFilter ::Pointer mathOperationFilter = BinaryDilateImageFilter ::New();
mathOperationFilter->SetInput(*input);
mathOperationFilter->SetKernel(structuringElement);
mathOperationFilter->Update();

typedef itk::BinaryErodeImageFilter  <ImageType, ImageType, StructuringElementType>
			BinaryErodeImageFilter ;
BinaryErodeImageFilter ::Pointer mathOperationFilter = BinaryErodeImageFilter ::New();
mathOperationFilter->SetInput(*input);
mathOperationFilter->SetKernel(structuringElement);
mathOperationFilter->SetBackgroundValue(0);
mathOperationFilter->SetForegroundValue(1);
mathOperationFilter->Update();

typedef itk::BinaryDilateImageFilter  <ImageType, ImageType, StructuringElementType>
			BinaryDilateImageFilter ;
BinaryDilateImageFilter ::Pointer mathOperationFilter = BinaryDilateImageFilter ::New();
mathOperationFilter->SetInput(*input);
mathOperationFilter->SetKernel(structuringElement);
mathOperationFilter->SetBackgroundValue(0);
mathOperationFilter->SetForegroundValue(1);
mathOperationFilter->Update();


Σ( ° △ °|||)︴,代码写的多了,文采果然越来越烂,除了注释,居然不知道写些什么。这样下去不是办法,我会尽力从最简单的写起。
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值