VTK修炼之道19:图像基本操作_图像像素值的访问与修改

本文介绍了两种在VTK中访问和修改图像像素的方法:1) 使用索引法直接访问,通过GetScalarPointer()获取像素值并转换数据类型;2) 利用vtkImageIterator迭代器进行遍历。内容涵盖彩色图和矢量图的存储方式以及如何处理不同元组数目的像素。此外,还推荐了几本相关参考资料。
摘要由CSDN通过智能技术生成

1.直接访问图像像素(索引法)

#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL);

#include <vtkSmartPointer.h>
#include <vtkImageData.h>
#include <vtkBMPReader.h>
#include <vtkImageViewer2.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>

int main()
{
	vtkSmartPointer<vtkBMPReader> reader =
		vtkSmartPointer<vtkBMPReader>::New();
	reader->SetFileName("lena.bmp");
	reader->Update();

	int dims[3];
	reader->GetOutput()->GetDimensions(dims);

	int nbofComp;
	nbofComp = reader->GetOutput()->GetNumberOfScalarComponents();

	for (int k = 0; k < dims[2]; k++)
	{
		for (int j = 0; j < dims[1]; j++)
		{
			for (int i = 0; i < dims[0]; i++)
			{
				if (i < 384 && i > 128 && j > 128 && j < 384)
				{
    
					 unsigned char *pixel = (unsigned char *)(reader->GetOutput()->GetScalarPointer(i, j, k));
				*pixel = 255 - *pixel;
				*(pixel + 1) = 255 - *(pixel + 1);
				*(pixel + 2) = 255 - *(pixel + 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值