Issues with Strel holefilling in groovy

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Issues with Strel holefilling in groovy

dzfarb
For some reason Stred.fillholes is giving me the error: 

No signature of method: static
inra.ijpb.morphology.Reconstruction.fillholes() is applicable for argument
types: (ij.process.ByteProcessor) values: [ip[width=375, height=375, bits=8,
min=0.0, max=255.0]] 
Possible solutions: fillHoles(ij.process.ImageProcessor) 

but ByteProcessor is a subclass of ImageProcessor so I don't understand why
it won't handle the ByteProcessor input. I've been trying to figure this out
for several hours, if someone could help me out it would be greatly
appreciated. 

the fillholes method is as follows: 

static ij.process.ImageProcessor fillHoles(ij.process.ImageProcessor image) 

My code: 

height = image.getHeight(); 
width = image.getWidth(); 
depth = image.getSize(); 

outimage = new ImageStack(width, height); 

//closing component 
strel = Strel.Shape.DISK.fromRadius(3); 

slice = null; 
for (int i = 1; i < depth; i++){ 
        init = image.getProcessor(i); 
        slice = init.duplicate(); 
        //potentially add another loop here 
        // *** 
        for (int j = 0; j < 30; j++){ 
                slice.erode(); 
                slice.dilate(); 
        } 
        // *** 
        
        slice = Reconstruction.fillholes(slice); 
        
        outimage.addSlice("" + i, slice); 
        
}



--
Sent from: http://imagej.1557.x6.nabble.com/

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Issues with Strel holefilling in groovy

Curtis Rueden
Hi,

> No signature of method: static
> inra.ijpb.morphology.Reconstruction.fillholes() is applicable
> for argument types: (ij.process.ByteProcessor) values:
> [ip[width=375, height=375, bits=8, min=0.0, max=255.0]]
> Possible solutions: fillHoles(ij.process.ImageProcessor)

It is case sensitive. Try writing "fillHoles" instead of "fillholes".

Regards,
Curtis

--
Curtis Rueden
LOCI software architect - https://loci.wisc.edu/software
ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
Have you tried the Image.sc Forum? https://forum.image.sc/



On Wed, Jun 5, 2019 at 1:55 PM dzfarb <[hidden email]> wrote:

> For some reason Stred.fillholes is giving me the error:
>
> No signature of method: static
> inra.ijpb.morphology.Reconstruction.fillholes() is applicable for argument
> types: (ij.process.ByteProcessor) values: [ip[width=375, height=375,
> bits=8,
> min=0.0, max=255.0]]
> Possible solutions: fillHoles(ij.process.ImageProcessor)
>
> but ByteProcessor is a subclass of ImageProcessor so I don't understand why
> it won't handle the ByteProcessor input. I've been trying to figure this
> out
> for several hours, if someone could help me out it would be greatly
> appreciated.
>
> the fillholes method is as follows:
>
> static ij.process.ImageProcessor fillHoles(ij.process.ImageProcessor
> image)
>
> My code:
>
> height = image.getHeight();
> width = image.getWidth();
> depth = image.getSize();
>
> outimage = new ImageStack(width, height);
>
> //closing component
> strel = Strel.Shape.DISK.fromRadius(3);
>
> slice = null;
> for (int i = 1; i < depth; i++){
>         init = image.getProcessor(i);
>         slice = init.duplicate();
>         //potentially add another loop here
>         // ***
>         for (int j = 0; j < 30; j++){
>                 slice.erode();
>                 slice.dilate();
>         }
>         // ***
>
>         slice = Reconstruction.fillholes(slice);
>
>         outimage.addSlice("" + i, slice);
>
> }
>
>
>
> --
> Sent from: http://imagej.1557.x6.nabble.com/
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html