[ITK-users] Kmeans, Otsu on SPECT image

Cyril Jaudet <[email protected]> Thu, 28 Jun 2018 17:11:20 +0200
Newsgroups gmane.comp.lib.itk.user
Message-ID <CAMgcNHzmKAFVTANNTfg8My+ZDHvmCbm8rU0=wjEjV1AorpiPqQ@mail.gmail.com>
--===============1550814704==
Content-Type: multipart/alternative; boundary="000000000000d48f51056fb52460"

--000000000000d48f51056fb52460
Content-Type: text/plain; charset="UTF-8"

Hello,
i want to use Otsu and Kmeans method to segment several lesion on SPECT
image.
The threshold method is apply on different lesion independently.
I write it directly in 3DSlicer.

The code for Otsu is working: (write in simpleITK)
#######################
label_masked=ThB.Execute(label_PET, 1, 1 ,1, 0) #
    labelOtsu_parlesion=Otsu.Execute(imagePET,label_masked, 0, 1, 64, True,
1)
    LabelsOtsu=labelOtsu_parlesion
    for label in range(2, len(Nlabels)+1):
        label_masked=ThB.Execute(label_PET, label, label ,label, 0) #
        labelOtsu_parlesion=Otsu.Execute(imagePET,label_masked, 0, label,
64, True, label)
        LabelsOtsu=Add.Execute(LabelsOtsu,labelOtsu_parlesion)
    su.PushToSlicer(LabelsOtsu, 'Otsu_intermediate', 2 )
################################

I try with Kmeans but i didn't suceed to use a mask directly and is there
any kmeans++ avaible?

################################################kmeans####################
    label_masked=ThB.Execute(dilatelabelOtsu, 1, 1 ,1, 0) #
    Image_masked=Mask.Execute(imagePET,label_masked )
    labelKmeans_parlesion=Kmeans.Execute(Image_masked)
    Imagefinal2=labelKmeans_parlesion
    for label in range(2, len(Nlabels)+1):
        print label
        label_masked=ThB.Execute(dilatelabelOtsu, label, label ,label, 0) #
        Image_masked=Mask.Execute(imagePET,label_masked )
        labelKmeans_parlesion=Kmeans.Execute(Image_masked)
        Imagefinal2=Add.Execute(Imagefinal,labelKmeans_parlesion)
    su.PushToSlicer(Imagefinal2, 'Kmeans_final', 2 )
##########################################################
Also if you have idea/experience for denoising SPECT image;)

Thank you,
Cyril Jaudet, Phd

--000000000000d48f51056fb52460
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hello, </div><div>i want to use Otsu and Kmeans metho=
d to segment several=C2=A0lesion on SPECT image.</div><div>The threshold me=
thod is apply on different lesion independently.</div><div>I write it direc=
tly in 3DSlicer.</div><div><br></div><div>The code for Otsu is working: (wr=
ite in simpleITK)</div><div>#######################</div><div>label_masked=
=3DThB.Execute(label_PET, 1, 1 ,1, 0) #=C2=A0 <br>=C2=A0=C2=A0=C2=A0 labelO=
tsu_parlesion=3DOtsu.Execute(imagePET,label_masked, 0, 1, 64, True, 1)<br>=
=C2=A0=C2=A0=C2=A0 LabelsOtsu=3DlabelOtsu_parlesion<br>=C2=A0=C2=A0=C2=A0 f=
or label in range(2, len(Nlabels)+1):<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 label_masked=3DThB.Execute(label_PET, label, label ,label, 0) #<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 labelOtsu_parlesion=3DOtsu.Exe=
cute(imagePET,label_masked, 0, label, 64, True, label)<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 LabelsOtsu=3DAdd.Execute(LabelsOtsu,labelOtsu_p=
arlesion)=C2=A0=C2=A0 <br>=C2=A0=C2=A0=C2=A0 su.PushToSlicer(LabelsOtsu, &#=
39;Otsu_intermediate&#39;, 2 )</div><div>################################</=
div><div><br></div><div>I try with Kmeans but i didn&#39;t suceed to use a =
mask directly and is there any kmeans++ avaible?</div><div><br></div><div>#=
###############################################kmeans####################<b=
r>=C2=A0=C2=A0=C2=A0 label_masked=3DThB.Execute(dilatelabelOtsu, 1, 1 ,1, 0=
) #<br>=C2=A0=C2=A0=C2=A0 Image_masked=3DMask.Execute(imagePET,label_masked=
 )<br>=C2=A0=C2=A0=C2=A0 labelKmeans_parlesion=3DKmeans.Execute(Image_maske=
d)<br>=C2=A0=C2=A0=C2=A0 Imagefinal2=3DlabelKmeans_parlesion<br>=C2=A0=C2=
=A0=C2=A0 for label in range(2, len(Nlabels)+1):<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 print label<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 label_masked=3DThB.Execute(dilatelabelOtsu, label, label ,label, 0) =
#<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Image_masked=3DMask.Execute=
(imagePET,label_masked )<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 labe=
lKmeans_parlesion=3DKmeans.Execute(Image_masked)<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 Imagefinal2=3DAdd.Execute(Imagefinal,labelKmeans_parl=
esion)=C2=A0=C2=A0 <br>=C2=A0=C2=A0=C2=A0 su.PushToSlicer(Imagefinal2, &#39=
;Kmeans_final&#39;, 2 )</div><div>#########################################=
#################</div><div>Also if you have idea/experience for denoising =
SPECT image;)</div><div><br></div><div>Thank you, </div><div>Cyril Jaudet, =
Phd=C2=A0</div></div>

--000000000000d48f51056fb52460--

--===============1550814704==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

The ITK community is transitioning from this mailing list to discourse.itk.org. Please join us there!
________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.php

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
https://itk.org/mailman/listinfo/insight-users

--===============1550814704==--