Option Explicit Dim Iters Dim FilterNum Dim StdDev Const mxErosionKF = 9 Const mxUserKF = 10 Const mxGaussianBlur = 11 Dim mxapp ' the MaximDL application object Dim ImageNum '''''''''''' 'Const imagename = "C:\d\sxv\05-06-26\m16HaRGB.tif" 'Dim imagename 'imagename=inputbox("Image name: ") Iters=CInt(inputbox("How many iterations? ")) FilterNum=CInt(inputbox("Which convolution filter? ")) StdDev=CDbl(inputbox("Standard Deviation of Background: ")) '''''''''''''' Dim image Dim numerator Dim denominator Dim result Dim image_high_vals Dim image_low_vals Dim background Set mxapp = CreateObject("Maxim.Application") Set image = mxapp.CurrentDocument Set background = image.Duplicate background.DisplayName = "Background" background.KernelFilter mxErosionKF, 7 ' 7x7 erosion background.KernelFilter mxGaussianBlur, 3 ' Gaussian blur 3 pixel radius background.AddConstant(5*StdDev) Set image_high_vals = image.Duplicate image_high_vals.DisplayName = "Image high_vals" image_high_vals.Subtract(background) Set image_low_vals = image_high_vals.Duplicate image_low_vals.DisplayName = "Image low_vals" image_low_vals.Add(background) image_low_vals.Subtract(image) Set result = image_high_vals.Duplicate result.DisplayName = "Deconvolved " + image.DisplayName image.DoNotClose = TRUE result.DoNotClose = TRUE for ImageNum=1 to Iters Set numerator = image_high_vals.Duplicate Set denominator = result.Duplicate numerator.DisplayName = "Numerator" denominator.DisplayName = "Denominator" denominator.KernelFilter mxUserKF, FilterNum numerator.Divide(denominator) numerator.KernelFilter mxUserKF, FilterNum result.Multiply(numerator) numerator.Close denominator.Close next result.Add(background) result.Subtract(image_low_vals) image_low_vals.Close image_high_vals.Close background.Close