0

我有以下 jpg 图像: 在此处输入图像描述

为了过滤此图像的轮廓(仅边距),我应该使用什么过滤器之王?

我试过这个:

    vtkSmartPointer<vtkJPEGReader> reader = vtkSmartPointer<vtkJPEGReader>::New();
    reader->SetFileName(sFile);
    reader->SetDataByteOrderToBigEndian();
    reader->Update();


    vtkSmartPointer<vtkImageDataGeometryFilter> geometryfilter = vtkSmartPointer<vtkImageDataGeometryFilter>::New();
    geometryfilter->SetInputConnection(reader->GetOutputPort());
    geometryfilter->SetOutputTriangles(1);
    geometryfilter->SetThresholdCells(1);
    geometryfilter->Update();

保存回jpg:

    vtkSmartPointer<vtkJpegWriter> writer = vtkSmartPointer<vtkJpegWriter>::New();
    writer->SetInputConnection(geometryfilter->GetOutputPort());
    writer->SetFileName(sFile);
    writer->Write();

但它不起作用。我也试过:

    vtkSmartPointer<vtkImageDataGeometryFilter> geometryfilter = vtkSmartPointer<vtkImageDataGeometryFilter>::New();
    geometryfilter->SetInputConnection(reader->GetOutputPort());
    geometryfilter->SetOutputTriangles(1);
    geometryfilter->SetThresholdCells(1);
    geometryfilter->Update();

    vtkSmartPointer<vtkOutlineFilter> outline = vtkSmartPointer<vtkOutlineFilter>::New();
    outline->SetInputConnection(geometryfilter->GetOutputPort());
    outline->SetGenerateFaces(1);
    outline->Update();

    vtkSmartPointer<vtkJpegWriter> writer = vtkSmartPointer<vtkJpegWriter>::New();
    writer->SetInputConnection(outline->GetOutputPort());
    writer->SetFileName(sFile);
    writer->Write();

也不行。你能帮我一点吗?

4

0 回答 0