Open yunfei920406 opened 2 years ago
The python traceback doesn't tell us your error. If you turn on elastix_object.SetLogToConsole(True )or SetLogToFileOn(True) you will get a more informative error message.
I'm having the exact same issue. Even if I set the SetLogToConsole to True, it doesn't return any information. It just breaks at line where elastix_object.UpdateLargestPossibleRegion()
and it just says what's in the screenshots above: Internal elastix error.
If you are using a jupyter notebook, you may not be seeing everything that is printed to console. It may be better to run your code as a command line script by placing the python bits into a .py
file and running from the terminal:
conda activate myenv
python mycode.py
Here is a reproducible example script creating a registration as a command line script that both prints to console and writes the console log to file:
if __name__ == "__main__":
import itk
import numpy as np
im = np.random.randint(0, 255, (1024, 1024), dtype=np.uint8).astype(np.float32)
im = itk.GetImageFromArray(im)
itk.elastix_registration_method(im, im)
parameter_object = itk.ParameterObject.New()
default_rigid_parameter_map = parameter_object.GetDefaultParameterMap('rigid')
parameter_object.AddParameterMap(default_rigid_parameter_map)
result_image, result_transform_parameters = itk.elastix_registration_method(
im, im,
parameter_object=parameter_object,
log_to_console=True,
output_directory="/Users/nhp/Documents",
log_to_file=True)
If you add log_to_file=True
and output_dir=/my/cool/dir
(changing to a directory that is easy for you to navigate to) to your registration, it will create a file called 'elastix.log' in that directory. This will contain what would normally be printed to console. Open it and scroll to the bottom and you may find a more informative error.
Thank you so much for your comment @NHPatterson
My issue was exactly running the registration in the Jupyter Notebook and not having anything printed. Copied the content to a .py
file and managed to have a detailed description of what was happening in the terminal (problems with the parameters).
Maybe a suggestion for the authors to write a quick comment in the example notebooks (maybe the first one) saying that setting console logging to True won't work in the Jupyter Notebooks.
Dear Developers: I am a Ph.D. candidate from Fudan University, China. Thanks for your kind providing us with the good package: ITK-Elastix, which is very helpful for medical registration. However, I encountered some questions after the installation. My programing environment is Anaconda+Python 3.7.12. After successful installation via the command:
"pip install itk-elastix", I met some errors when I tried to register the images via the following codes:
The errors are as follows:
When I tried with other codes:
Similar errors also appeared: