diff --git a/src/Cxx/Images/ImageContinuousDilate3D.cxx b/src/Cxx/Images/ImageContinuousDilate3D.cxx index cb9041ee21a0dd2766a15e8f4903b27e9211fdd4..5093e51cf8e9e5f161c4c55eede6e14754b95b5f 100644 --- a/src/Cxx/Images/ImageContinuousDilate3D.cxx +++ b/src/Cxx/Images/ImageContinuousDilate3D.cxx @@ -3,9 +3,10 @@ #include #include #include +#include +#include #include #include -#include #include #include #include @@ -21,50 +22,47 @@ int main(int argc, char* argv[]) if (argc < 2) { - std::array drawColor1{0, 0, 0}; - std::array drawColor2{0, 0, 0}; - auto color1 = colors->GetColor3ub("Black").GetData(); - auto color2 = colors->GetColor3ub("Red").GetData(); - for (auto i = 0; i < 3; ++i) - { - drawColor1[i] = color1[i]; - drawColor2[i] = color2[i]; - } + auto color1 = colors->GetColor3ub("Black"); + std::array drawColor1{color1.GetRed(), color1.GetGreen(), + color1.GetBlue()}; + auto color2 = colors->GetColor3ub("Red"); + std::array drawColor2{color2.GetRed(), color2.GetGreen(), + color2.GetBlue()}; // Create an image vtkNew source; source->SetScalarTypeToUnsignedChar(); source->SetExtent(0, 200, 0, 200, 0, 0); - source->SetDrawColor(drawColor1.data()); + source->SetDrawColor(drawColor1[0], drawColor1[1], drawColor1[1]); source->FillBox(0, 200, 0, 200); - source->SetDrawColor(drawColor2.data()); + source->SetDrawColor(drawColor2[0], drawColor2[1], drawColor2[1]); source->FillBox(100, 150, 100, 150); source->Update(); image->ShallowCopy(source->GetOutput()); } else { - vtkNew reader; + // Read the image + vtkNew readerFactory; + vtkSmartPointer reader; + reader.TakeReference(readerFactory->CreateImageReader2(argv[1])); reader->SetFileName(argv[1]); reader->Update(); image->ShallowCopy(reader->GetOutput()); } - - vtkNew dilateFilter; - dilateFilter->SetInputData(image); - dilateFilter->SetKernelSize(10, 10, 1); - dilateFilter->Update(); - vtkNew originalMapper; originalMapper->SetInputData(image); - originalMapper->Update(); vtkNew originalActor; originalActor->SetMapper(originalMapper); + vtkNew dilateFilter; + dilateFilter->SetInputData(image); + dilateFilter->Update(); + vtkNew dilatedMapper; dilatedMapper->SetInputConnection(dilateFilter->GetOutputPort()); - dilatedMapper->Update(); + dilatedMapper->SetInputData(image); vtkNew dilatedActor; dilatedActor->SetMapper(dilatedMapper); diff --git a/src/Cxx/Images/ImageContinuousErode3D.cxx b/src/Cxx/Images/ImageContinuousErode3D.cxx index d458a13baabe3508e1d1813e191532154fa9b2e3..d02bbb777ba7deed94dc8aa0124a49ad4ebe79e7 100644 --- a/src/Cxx/Images/ImageContinuousErode3D.cxx +++ b/src/Cxx/Images/ImageContinuousErode3D.cxx @@ -3,9 +3,10 @@ #include #include #include +#include +#include #include #include -#include #include #include #include @@ -21,50 +22,47 @@ int main(int argc, char* argv[]) if (argc < 2) { - std::array drawColor1{0, 0, 0}; - std::array drawColor2{0, 0, 0}; - auto color1 = colors->GetColor3ub("Black").GetData(); - auto color2 = colors->GetColor3ub("Red").GetData(); - for (auto i = 0; i < 3; ++i) - { - drawColor1[i] = color1[i]; - drawColor2[i] = color2[i]; - } + auto color1 = colors->GetColor3ub("Black"); + std::array drawColor1{color1.GetRed(), color1.GetGreen(), + color1.GetBlue()}; + auto color2 = colors->GetColor3ub("Red"); + std::array drawColor2{color2.GetRed(), color2.GetGreen(), + color2.GetBlue()}; // Create an image vtkNew source; source->SetScalarTypeToUnsignedChar(); source->SetExtent(0, 200, 0, 200, 0, 0); - source->SetDrawColor(drawColor1.data()); + source->SetDrawColor(drawColor1[0], drawColor1[1], drawColor1[1]); source->FillBox(0, 200, 0, 200); - source->SetDrawColor(drawColor2.data()); + source->SetDrawColor(drawColor2[0], drawColor2[1], drawColor2[1]); source->FillBox(100, 150, 100, 150); source->Update(); image->ShallowCopy(source->GetOutput()); } else { - vtkNew reader; + vtkNew readerFactory; + vtkSmartPointer reader; + reader.TakeReference(readerFactory->CreateImageReader2(argv[1])); reader->SetFileName(argv[1]); reader->Update(); image->ShallowCopy(reader->GetOutput()); } - vtkNew erodeFilter; - erodeFilter->SetInputData(image); - erodeFilter->SetKernelSize(10, 10, 1); - erodeFilter->Update(); - vtkNew originalMapper; originalMapper->SetInputData(image); - originalMapper->Update(); vtkNew originalActor; originalActor->SetMapper(originalMapper); + vtkNew erodeFilter; + erodeFilter->SetInputData(image); + erodeFilter->SetKernelSize(10, 10, 1); + erodeFilter->Update(); + vtkNew erodedMapper; erodedMapper->SetInputConnection(erodeFilter->GetOutputPort()); - erodedMapper->Update(); vtkNew erodedActor; erodedActor->SetMapper(erodedMapper); diff --git a/src/PythonicAPI/Images/ImageContinuousDilate3D.py b/src/PythonicAPI/Images/ImageContinuousDilate3D.py index c064ac8cb38f54dbcefb2704a49bef3aab6a5ff4..372401009aec66f8e22dbb03f9e26d2a4c74ec23 100755 --- a/src/PythonicAPI/Images/ImageContinuousDilate3D.py +++ b/src/PythonicAPI/Images/ImageContinuousDilate3D.py @@ -8,7 +8,7 @@ import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonDataModel import vtkImageData -from vtkmodules.vtkIOImage import vtkPNGReader +from vtkmodules.vtkIOImage import vtkImageReader2Factory from vtkmodules.vtkImagingMorphological import vtkImageContinuousDilate3D from vtkmodules.vtkImagingSources import vtkImageCanvasSource2D from vtkmodules.vtkRenderingCore import ( @@ -62,19 +62,18 @@ def main(): source.update() image.ShallowCopy(source.output) else: - reader = vtkPNGReader(file_name=fp) + reader: vtkImageReader2Factory = vtkImageReader2Factory().CreateImageReader2(str(fp)) + reader.file_name = fp reader.update() image.ShallowCopy(reader.output) - dilate_filter = vtkImageContinuousDilate3D(input_data=image, kernel_size=(10, 10, 1)) - original_mapper = vtkDataSetMapper(input_data=image) - original_actor = vtkActor(mapper=original_mapper) + dilate_filter = vtkImageContinuousDilate3D(input_data=image, kernel_size=(10, 10, 1)) + dilate_filter.update() dilated_mapper = vtkDataSetMapper() dilate_filter >> dilated_mapper - dilated_actor = vtkActor(mapper=dilated_mapper) # Visualize diff --git a/src/PythonicAPI/Images/ImageContinuousErode3D.py b/src/PythonicAPI/Images/ImageContinuousErode3D.py index 3d914bccae043aa97432ac79b5052e137d26e121..56f92c5c00251ad9a155a0019b4eb16489c3fdc0 100755 --- a/src/PythonicAPI/Images/ImageContinuousErode3D.py +++ b/src/PythonicAPI/Images/ImageContinuousErode3D.py @@ -8,7 +8,7 @@ import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonDataModel import vtkImageData -from vtkmodules.vtkIOImage import vtkPNGReader +from vtkmodules.vtkIOImage import vtkImageReader2Factory from vtkmodules.vtkImagingMorphological import vtkImageContinuousErode3D from vtkmodules.vtkImagingSources import vtkImageCanvasSource2D from vtkmodules.vtkRenderingCore import ( @@ -62,19 +62,18 @@ def main(): source.update() image.ShallowCopy(source.output) else: - reader = vtkPNGReader(file_name=fp) + reader: vtkImageReader2Factory = vtkImageReader2Factory().CreateImageReader2(str(fp)) + reader.file_name = fp reader.update() image.ShallowCopy(reader.output) - erode_filter = vtkImageContinuousErode3D(input_data=image, kernel_size=(10, 10, 1)) - original_mapper = vtkDataSetMapper(input_data=image) - original_actor = vtkActor(mapper=original_mapper) + erode_filter = vtkImageContinuousErode3D(input_data=image, kernel_size=(10, 10, 1)) + erode_filter.update() eroded_mapper = vtkDataSetMapper() erode_filter >> eroded_mapper - eroded_actor = vtkActor(mapper=eroded_mapper) # Visualize