import SimpleITK as sitk import urllib import os.path destination = '/tmp/TralitusSaltrator.jpg' source = 'http://files.figshare.com/1546044/IMG_0974.jpg' if not os.path.isfile(destination): urllib.urlretrieve(source,destination) colorimage = sitk.ReadImage(destination) image = sitk.VectorMagnitude(colorimage) imshow(sitk.GetArrayFromImage(image)); import matplotlib.pyplot as plt import matplotlib.cm as cm imshow(sitk.GetArrayFromImage(image),cmap=cm.gray); rgsmootherfilter = sitk.SmoothingRecursiveGaussianImageFilter() rgsmootherfilter.SetSigma(2.5) rgsmootherfilter.SetNormalizeAcrossScale(1) rgsmoothedimage = rgsmootherfilter.Execute(image) imshow(sitk.GetArrayFromImage(rgsmoothedimage),cmap=cm.gray); rgsmoothedimage = rgsmootherfilter.Execute(image,3.5,1) imshow(sitk.GetArrayFromImage(rgsmoothedimage),cmap=cm.gray); medianfilter = sitk.MedianImageFilter() medianfilter.SetRadius(3) medianimage = medianfilter.Execute(image) imshow(sitk.GetArrayFromImage(medianimage),cmap=cm.gray); medianimage = medianfilter.Execute(image,[3,3]) imshow(sitk.GetArrayFromImage(medianimage),cmap=cm.gray); curvatureflowfilter = sitk.CurvatureFlowImageFilter() curvatureflowfilter.SetTimeStep(0.01) curvatureflowfilter.SetNumberOfIterations(30) curvatureflowimage = curvatureflowfilter.Execute(image) imshow(sitk.GetArrayFromImage(curvatureflowimage),cmap=cm.gray); rgsmootherfilter.SetSigma(2.5) imshow(sitk.GetArrayFromImage(curvatureflowimage),cmap=cm.gray); grayscale_erode_filter = sitk.GrayscaleErodeImageFilter() grayscale_eroded_image = grayscale_erode_filter.Execute(image) grayscale_erode_filter.SetKernelRadius(3) grayscale_erode_filter.SetKernelType(sitk.sitkBall) imshow(sitk.GetArrayFromImage(grayscale_eroded_image),cmap=cm.gray); grayscale_dilate_filter = sitk.GrayscaleDilateImageFilter() grayscale_dilate_image = grayscale_dilate_filter.Execute(image) grayscale_dilate_filter.SetKernelRadius(3) grayscale_dilate_filter.SetKernelType(sitk.sitkBall) imshow(sitk.GetArrayFromImage(grayscale_dilate_image),cmap=cm.gray); canny_filter = sitk.CannyEdgeDetectionImageFilter() float_image = sitk.Cast(image, sitk.sitkFloat32) canny_filter.SetLowerThreshold(50); canny_filter.SetVariance(15); canny_edges = canny_filter.Execute(float_image) imshow(sitk.GetArrayFromImage(canny_edges),cmap=cm.gray); rglaplacianfilter = sitk.LaplacianRecursiveGaussianImageFilter() rglaplacianfilter.SetSigma(2.5) rglaplacianfilter.SetNormalizeAcrossScale(1) rglaplacianimage = rglaplacianfilter.Execute(image) imshow(sitk.GetArrayFromImage(rglaplacianimage),cmap=cm.gray); otsu_filter = sitk.OtsuThresholdImageFilter() otsu_image = otsu_filter.Execute(image) imshow(sitk.GetArrayFromImage(otsu_image),cmap=cm.gray); hole_filling_filter = sitk.VotingBinaryHoleFillingImageFilter() hole_filling_filter.SetRadius(2) hole_filling_filter.SetMajorityThreshold(1) hole_filling_filter.SetBackgroundValue(0) hole_filling_filter.SetForegroundValue(1) hole_filled_image = hole_filling_filter.Execute(otsu_image) imshow(sitk.GetArrayFromImage(hole_filled_image),cmap=cm.gray); hole_filling_filter = sitk.VotingBinaryIterativeHoleFillingImageFilter() hole_filling_filter.SetRadius(2) hole_filling_filter.SetMajorityThreshold(1) hole_filling_filter.SetBackgroundValue(0) hole_filling_filter.SetForegroundValue(1) hole_filled_image = hole_filling_filter.Execute(otsu_image) imshow(sitk.GetArrayFromImage(hole_filled_image),cmap=cm.gray); dir(sitk)