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