I tryed to apply some filters on my volume file with imageJ. then imported it to 3dslicer make a segment using threshold. saved it and call my old volume file. (because I cant see all details with filtered volume but its better on some parts)
When I bring my old volume file, new segmentation cant be seen on axis. when I view on 3d I can see that its resolution changed.
left one is created using original volume file, right is made with filtered volume file. How can I merge my new segmentation with original volume file? ty
ImageJ does not keep track of the image geometry (origin, spacing, axis directions), therefore the image gets corrupted when ImageJ saves it. You could restore the image geometry by editing the file header in a text editor or copy the geometry information from the original image by Python scripting.
But most likely you can find much more filters in Slicer and its extensions than in ImageJ. What operations do you perform on the image in ImageJ?
I have fixed the issue by taking volume info from original volume file and then enter same info to other broken one. Had to segment it again but lets say no big deal for first time.
For the other part, yes I have seen many filters in 3dslicer via SimpleITK, but most of them didnt worked well.(at least for me) My goal is to segment skull, teeth mandible via automated tools like threshold, grow from seed etc. Cant do it with my original files because it have a lot of noise and thin bones are not visible. (around eyeball is almost empty) thus makes it hard to segment and it take so much time doing manually.
Tryed using Richard-lucy filter on my data, it wanted 2 input files so as I understand it right I put gaussian blurred on in the first input and then original file in the second input. Not sure if it makes sense. Unsharp mask also did not worked and gives error (Pixel type: 16-bit signed integer is not supported in 3D by class)
With imageJ and some of its plugins, I have generated a PSF from my CT data. Applied unsharp mask (review button also helpfull) but still could not apply richardson because I think generating PSF from a CT data is not a valid way.
If you have suggestions for better skull segmentation, unvisible thin bones, filtering etc. would be gratefull to hear them. Thank you again.
There have been extensive work on orbital bone reconstruction in Slicer from CTs with unsharp masking with optimal kernel designed based on PSF estimated from the image content. You may find the discussions on this forum. My conclusion was that these improvements were just marginally better (if at all) than basic a isotropic diffusion noise filters, therefore it is not worth the trouble.
If you want to experiment with more filters: Many ITK filters require float or double input mage type. You can use these filters by converting your image with “Cast scalar volume” module.
However, I found that instead of putting a lot of effort into image filtering I could get substantially better quality segmentation of the eyes socket by starting from an imperfect, partial bone segmentation (with lots of holes) and closing the holes (extract solid cavity) by using SurfaceWrapSolidify extension.
Note that if you need to segment many cases then you can use these manual/semi-automatic methods to segment a few dozen cases, and then train an AI segmentation model and adaptively refine and further train the model with more cases until the AI model provides good enough results fully automatically. All you need for this is implementes in the MONAILabel extension.