05-VTK在图像处理中的应用(6)

本文介绍了VTK中vtkImageMathematics和vtkImageLogic用于图像运算,包括数学运算如加、减、乘、除,以及逻辑运算如与、或、异或等。此外,还讲解了图像二值化,通过vtkImageThreshold实现图像阈值处理,以创建二值图像。
摘要由CSDN通过智能技术生成

5.10 图像运算

5.10.1 数学运算

vtkImageMathematics提供了基本的一元和二元数学操作。根据不同的操作,需要一个或者两个输入图像。二元数字操作要求两个输入图像具有相同的像素数据类型,颜色分量。当两个图像大小不同时,输出图像的范围为两个输入图像范围的并集,并且原点和像素间隔与第一个输入图像保持一致。

 

1:  vtkSmartPointer<vtkImageCanvasSource2D>imageSource =

  2:    vtkSmartPointer<vtkImageCanvasSource2D>::New();

  3:  imageSource->SetNumberOfScalarComponents(3);

  4:  imageSource->SetScalarTypeToUnsignedChar();

  5:   imageSource->SetExtent(0,4, 0, 4, 0, 0);

  6:  imageSource->SetDrawColor(100.0, 0, 0);

  7:   imageSource->FillBox(0, 4,0, 4);

  8:   imageSource->Update();

  9:  

 10:   vtkSmartPointer<vtkImageMathematics>imageMath =

 11:    vtkSmartPointer<vtkImageMathematics>::New();

 12:  imageMath->SetOperationToMultiplyByK();

 13:  imageMath->SetConstantK(2.0);

 14:  imageMath->SetInputConnection(imageSource->GetOutputPort());

 15:   imageMath->Update();

 

上例中生成了一副图像,图像中绘制了一个暗红色矩形;然后定义vtkImageMathematics对象,并调用SetOperationToMultiplyByK()函数来将图像中所有的像素值乘以一个常数K,这里常数值为2.0,下图为输出结果。

 

图5.23 图像数学运算

 

vtkImageMathematics中支持的二元数学操作有:

SetOperationToAdd:两个图像对应像素加法运算

SetOperationToSubtract:两个图像对应像素减法运算

SetOperationToMultiply:两个图像对应像素相乘运算

SetOperationToDivide:两个图像对应像素相除运算

SetOperationToConjugate:将两个标量图像对应像素组合为共轭复数

SetOpe

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值