Outline filter for a jpeg image

133 Views Asked by At

I have the following jpg image: enter image description here

What king of filter should I use in order to filter the outline (margins only) of this image ?

I have tried this:

    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();

Save back to jpg:

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

But it doesn't working. I have also tried:

    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();

Not work that either. Can you help me a little bit ?

0

There are 0 best solutions below