Контурный фильтр для изображения jpeg

У меня есть следующее изображение в формате 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();

Это тоже не работает. Вы можете мне немного помочь?

0 ответов

Другие вопросы по тегам