sitk::ERROR: No ImageJ/Fiji application found.

发布于:2022-12-23 ⋅ 阅读:(401) ⋅ 点赞:(0)

sitk::ERROR: No ImageJ/Fiji application found.

目录

sitk::ERROR: No ImageJ/Fiji application found.

问题:

解决:

完整错误:


问题:

执行simpleITK框架进行图像配准时候发生如下错误:

sitk::ERROR: No ImageJ/Fiji application found.

执行命令如下,可以使用不同的变换器。

python dalign.py 1703801.jpg 1703801_1.jpg composite.tfm
python dalign.py 1703801.jpg 1703801_1.jpg euler2D.tfm
python dalign.py 1703801.jpg 1703801_1.jpg RIRE_training_001_CT_2_mr_T1.tfm
python dalign.py 1703801.jpg 1703801_1.jpg composescaleskewversor.tfm
python dalign.py 1703801.jpg 1703801_1.jpg affine.tfm

import SimpleITK as sitk
import sys
import os


def command_iteration(filter):
    print(f"{filter.GetElapsedIterations():3} = {filter.GetMetric():10.5f}")


if len(sys.argv) < 4:
    print(
        f"Usage: {sys.argv[0]}"
        + " <fixedImageFilter> <movingImageFile> <outputTransformFile>"
    )
    sys.exit(1)

fixed = sitk.ReadImage(sys.argv[1], sitk.sitkFloat32)

moving = sitk.ReadImage(sys.argv[2], sitk.sitkFloat32)

matcher = sitk.HistogramMatchingImageFilter()
matcher.SetNumberOfHistogramLevels(1024)
matcher.SetNumberOfMatchPoints(7)
matcher.ThresholdAtMeanIntensityOn()
moving = matcher.Execute(moving, fixed)

# The basic Demons Registration Filter
# Note there is a whole family of Demons Registration algorithms included in
# SimpleITK
demons = sitk.DemonsRegistrationFilter()
demons.SetNumberOfIterations(50)
# Standard deviation for Gaussian smoothing of displacement field
demons.SetStandardDeviations(1.0)

demons.AddCommand(sitk.sitkIterationEvent, lambda: command_iteration(demons))

displacementField = demons.Execute(fixed, moving)

print("-------")
print(f"Number Of Iterations: {demons.GetElapsedIterations()}")
print(f" RMS: {demons.GetRMSChange()}")

outTx = sitk.DisplacementFieldTransform(displacementField)

sitk.WriteTransform(outTx, sys.argv[3])

if "SITK_NOSHOW" not in os.environ:
    resampler = sitk.ResampleImageFilter()
    resampler.SetReferenceImage(fixed)
    resampler.SetInterpolator(sitk.sitkLinear)
    resampler.SetDefaultPixelValue(100)
    resampler.SetTransform(outTx)

    out = resampler.Execute(moving)
    simg1 = sitk.Cast(sitk.RescaleIntensity(fixed), sitk.sitkUInt8)
    simg2 = sitk.Cast(sitk.RescaleIntensity(out), sitk.sitkUInt8)
    # Use the // floor division operator so that the pixel type is
    # the same for all three images which is the expectation for
    # the compose filter.
    cimg = sitk.Compose(simg1, simg2, simg1 // 2.0 + simg2 // 2.0)
    sitk.Show(cimg, "DeformableRegistration1 Composition")

解决:

注意:fiji软件包的底层环境是java,所以需要提前安装好java哦。

可以再cmd中输入java命令测试,你的系统是否已经安装好了java.

下载fiji软件包:笔者选择windows64位

Fiji Downloads

下载完成之后,解压,会得到一个叫做Fiji.app的文件夹。

将Fiji.app的文件夹拷贝包笔者使用的anaconda主环境的Scripts文件夹中。

D:\anaconda\Scripts\Fiji.app

OK了

完整错误:

(base) C:\Users\users>python align.py 1703801.jpg 1703801_1.jpg euler2D.tfm
  1 =  316.08310
  2 =  309.61603
  3 =  305.84348
  4 =  303.55265
  5 =  301.97677
  6 =  300.83932
  7 =  299.98187
  8 =  299.30239
  9 =  298.74999
 10 =  298.26859
 11 =  297.87110
 12 =  297.51645
 13 =  297.20165
 14 =  296.92658
 15 =  296.66421
 16 =  296.44000
 17 =  296.22853
 18 =  296.03984
 19 =  295.86223
 20 =  295.70708
 21 =  295.54896
 22 =  295.39734
 23 =  295.27245
 24 =  295.14585
 25 =  295.02095
 26 =  294.90249
 27 =  294.78907
 28 =  294.69944
 29 =  294.59759
 30 =  294.51432
 31 =  294.42624
 32 =  294.35778
 33 =  294.27413
 34 =  294.21444
 35 =  294.13871
 36 =  294.07736
 37 =  294.01093
 38 =  293.96671
 39 =  293.89736
 40 =  293.85241
 41 =  293.79037
 42 =  293.75224
 43 =  293.69498
 44 =  293.66584
 45 =  293.60078
 46 =  293.57719
 47 =  293.52466
 48 =  293.49716
 49 =  293.45349
 50 =  293.41868
-------
Number Of Iterations: 50
 RMS: 0.25455084462799155
Traceback (most recent call last):
  File "align.py", line 61, in <module>
    sitk.Show(cimg, "DeformableRegistration1 Composition")
  File "D:\anaconda\lib\site-packages\SimpleITK\SimpleITK.py", line 7768, in Show
    return _SimpleITK.Show(*args, **kwargs)
RuntimeError: Exception thrown in SimpleITK Show: D:\a\1\sitk\Code\IO\src\sitkImageViewer.cxx:620:
sitk::ERROR: No ImageJ/Fiji application found.

(base) C:\Users\users>

参考:simpleITK

参考:https://blog.csdn.net/weixin_44727457/article/details/109661412
参考:https://blog.csdn.net/Magician0619/article/details/124046418

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到