Beispiel #1
0
assert s[0] == s[1] == 1.0

# test origin
s = itk.origin(reader)
assert s[0] == s[1] == 0.0
s = itk.origin(reader.GetOutput())
assert s[0] == s[1] == 0.0

# test index
s = itk.index(reader)
assert s[0] == s[1] == 0
s = itk.index(reader.GetOutput())
assert s[0] == s[1] == 0

# test region
s = itk.region(reader)
assert s.GetIndex()[0] == s.GetIndex()[1] == 0
assert s.GetSize()[0] == s.GetSize()[1] == 256
s = itk.region(reader.GetOutput())
assert s.GetIndex()[0] == s.GetIndex()[1] == 0
assert s.GetSize()[0] == s.GetSize()[1] == 256

# test range
assert itk.range(reader) == (0, 255)
assert itk.range(reader.GetOutput()) == (0, 255)

# test write
itk.imwrite(reader, sys.argv[3])
itk.imwrite(reader, sys.argv[3], True)

# test read
Beispiel #2
0
assert s[0] == s[1] == 1.0

# test origin
s = itk.origin(reader)
assert s[0] == s[1] == 0.0
s = itk.origin(reader.GetOutput())
assert s[0] == s[1] == 0.0

# test index
s = itk.index(reader)
assert s[0] == s[1] == 0
s = itk.index(reader.GetOutput())
assert s[0] == s[1] == 0

# test region
s = itk.region(reader)
assert s.GetIndex()[0] == s.GetIndex()[1] == 0
assert s.GetSize()[0] == s.GetSize()[1] == 256
s = itk.region(reader.GetOutput())
assert s.GetIndex()[0] == s.GetIndex()[1] == 0
assert s.GetSize()[0] == s.GetSize()[1] == 256


# test range
assert itk.range(reader) == (0, 255)
assert itk.range(reader.GetOutput()) == (0, 255)


# test write
itk.imwrite(reader, sys.argv[2])
itk.imwrite(reader, sys.argv[2], True)
Beispiel #3
0
obo3()

dilate2 = itk.BinaryDilateImageFilter.IUC3IUC3SE3.New(Kernel=itk.strel(3,[3,3,1]), auto_progress=False)
dilate3 = itk.BinaryDilateImageFilter.IUC3IUC3SE3.New(dilate2, Kernel=itk.FlatStructuringElement._3.Cross(1), auto_progress=False)
border2 = itk.SubtractImageFilter.IUC3IUC3IUC3.New(dilate3, dilate2, auto_progress=False)
obo2 = itk.ObjectByObjectLabelMapFilter.LM3.New(bi2lm, InputFilter=dilate2, OutputFilter=border2, PadSize=6)

crop = itk.AutoCropLabelMapFilter.LM3.New(result, CropBorder=[30,30,10])
window = itk.IntensityWindowingImageFilter.IUS3IUS3.New(cenp, OutputMinimum=0, OutputMaximum=255)
rescale = itk.CastImageFilter.IUS3IUC3.New(window)
# extract = itk.ExtractImageFilter.IUS3IUS3.New(cenp)
# rescale = itk.RescaleIntensityImageFilter.IUS3IUC3.New(extract)
overlay = itk.LabelMapOverlayImageFilter.LM3IUC3IRGBUC3.New(crop, rescale, NumberOfThreads=1)#, Opacity=0.2)

# segmentation
result2 = itk.Image.UC3.New(Regions=itk.region(cenp), Spacing=itk.spacing(cenp))
result2.Allocate()
result2.FillBuffer(0)

for nucleus in lmNuclei[0]:
  l = nucleus.GetLabel()
  # select the right nucleus
  mask.SetLabel(l)
  # and set the threshold for the cenp spots
  rmaxRelabel()
#  oldValue = itk.range(mask)[1]/5
  v = int( rmaxRelabel[0].GetLabelObject(22).GetMaximum()/2 )
  values = [rmaxRelabel[0].GetLabelObject(i+1).GetMaximum() for i in range(11)]
#  vmean = mean(values) / 4
#  vmedian = median(values) / 4
  th.SetLowerThreshold( int(vmedian) )
def Estimate_USRF_ReferenceSpectrum(input_filepath, side_lines=5, fft1D_size=128,
        subregion_depth_fraction=1.0):

    InputPixelType = itk.ctype('float')
    Dimension = 2
    ImageType = itk.Image[InputPixelType, Dimension]

    reader = itk.ImageFileReader[ImageType].New()
    reader.SetFileName(input_filepath)
    input_RF = reader.GetOutput()
    # Apply missing spacing information
    if 'LinearProbe' in input_filepath:
        change_information = itk.ChangeInformationImageFilter.New(input_RF)
        change_information.SetUseReferenceImage(True)
        change_information.SetChangeSpacing(True)
        output_spacing = [1.0, 1.0]
        size = itk.size(input_RF)
        sos = 1540.
        fs = 30000.
        output_spacing[0] = sos / (2 * fs)
        transducer_width = 30.0
        output_spacing[1] = transducer_width / (size[1] - 1)
        change_information.SetOutputSpacing(output_spacing)
        input_RF = change_information.GetOutput()
    input_RF.UpdateOutputInformation()

    # Look for the peak signal amplitude in a sub-region
    subregion_filter = itk.RegionOfInterestImageFilter.New(input_RF)
    subregion = itk.region(input_RF)
    input_size = itk.size(input_RF)
    input_index = itk.index(input_RF)
    # Skip the initial 10% of the beamline, which is in the nearfield
    subregion_index = itk.Index[Dimension]()
    subregion_index[0] = int(input_size[0] * 0.1)
    subregion_index[1] = input_index[1]
    subregion.SetIndex(subregion_index)
    subregion_size = itk.Size[Dimension]()
    subregion_size[0] = input_size[0] - subregion_index[0]
    subregion_size[0] = subregion_size[0] - int((1. - subregion_depth_fraction) * subregion_size[0])
    subregion_size[1] = input_size[1]
    subregion.SetSize(subregion_size)
    subregion_filter.SetRegionOfInterest(subregion)
    subregion_filter.UpdateLargestPossibleRegion()
    subregion_image = subregion_filter.GetOutput()

    max_calculator = itk.MinimumMaximumImageCalculator.New(subregion_image)
    max_calculator.ComputeMaximum()
    max_index = max_calculator.GetIndexOfMaximum()

    SideLinesPixelType = itk.ctype('unsigned char')
    SideLinesImageType = itk.Image[SideLinesPixelType, Dimension]
    side_lines_image = SideLinesImageType.New()
    side_lines_image.CopyInformation(subregion_image)
    side_lines_image.SetRegions(subregion_image.GetLargestPossibleRegion())
    side_lines_image.Allocate()
    side_lines_image.FillBuffer(side_lines)

    spectra_window_filter = itk.Spectra1DSupportWindowImageFilter.New(side_lines_image)
    spectra_window_filter.SetFFT1DSize(fft1D_size)

    spectra_filter = itk.Spectra1DImageFilter.New(subregion_filter)
    spectra_filter.SetSupportWindowImage(spectra_window_filter.GetOutput())
    spectra_filter.UpdateLargestPossibleRegion()

    reference_spectrum_filter = itk.RegionOfInterestImageFilter.New(spectra_filter)
    reference_spectrum_region = itk.region(spectra_filter.GetOutput())
    reference_spectrum_region.SetIndex(max_index)
    reference_spectrum_size = itk.Size[Dimension]()
    reference_spectrum_size.Fill(1)
    reference_spectrum_region.SetSize(reference_spectrum_size)
    reference_spectrum_filter.SetRegionOfInterest(reference_spectrum_region)

    input_dir, input_file = os.path.split(input_filepath)
    output_dir = os.path.join(input_dir, 'ReferenceSpectrum')
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    input_filename, input_fileext = os.path.splitext(input_file)
    identifier = '_ReferenceSpectrum_side_lines_{:02d}_fft1d_size_{:03d}.mha'.format(side_lines, fft1D_size)
    output_file = os.path.join(output_dir, input_filename + identifier)

    writer = itk.ImageFileWriter.New(reference_spectrum_filter)
    writer.SetFileName(output_file)
    writer.SetUseCompression(True)
    writer.Update()
Beispiel #5
0
      transform = flatNucleus.GetBinaryPrincipalAxesToPhysicalAxesTransform()
      resampleNucleus(Transform=transform, OutputStartIndex=idx, Size=size, OutputSpacing=spacing)
      resampleCentromeres(Transform=transform, OutputStartIndex=idx, Size=size, OutputSpacing=spacing)
      resampleCentromeresInt(Transform=transform, OutputStartIndex=idx, Size=size, OutputSpacing=spacing)
      unflattenNucleus(OutputSpacing=spacing2)
      unflattenCentromeres(OutputSpacing=spacing2)
      unflattenCentromeresInt(OutputSpacing=spacing2)

      nucleus = nucleusLM()[0].GetLabelObject(flatNucleus.GetLabel())
      maskedCentromeres.SetLabel(nucleus.GetLabel())

      nucleusSize = nucleus.GetSize()
      npos = nucleus.GetCentroid()

      # une simulation pour une analyse globale dans R
      simCentromeresLM.SetRegions(itk.region(nucleusReader))
      simCentromeresLM.SetSpacing(itk.spacing(nucleusReader))
      simCentromeresLM.ClearLabels()

      for i in range(centromeresLM()[0].GetNumberOfLabelObjects()):
        idx = nucleus.GetIndex(random.randint(0,  nucleusSize-1))
        simCentromeresLM.SetPixel(idx, 1)
      simCentromeresLM.GetLabelObject(1).Optimize()
      
      cpos = shapeAggrCentromeresLM()[0].GetNthLabelObject(0).GetCentroid()
      cdist = (npos - cpos).GetNorm()

      spos = shapeSimCentromeresLM()[0].GetNthLabelObject(0).GetCentroid()
      sdist = (npos - spos).GetNorm()
      
      # realisation dun test par noyau avec plusieurs simulations