Posted by
Steve Wolf on
Feb 09, 2016; 4:43pm
URL: http://imagej.273.s1.nabble.com/Calculate-local-stdDev-using-a-sliding-box-tp5015587.html
Attempting to calculate local stdDev, using a sliding box, on a 4096x4096 image. I’m using the following Python script, but it runs extremely slow, any suggestions on speeding it up?
from ij import IJ
from ij import ImagePlus
from ij.process import FloatProcessor
from array import zeros
from ij.process import ImageStatistics as IS
imp = IJ.getImage()
ip = imp.getProcessor()
options = IS.MEAN | IS.MEDIAN | IS.MIN_MAX | IS.STD_DEV
stats = IS.getStatistics(ip, options, imp.getCalibration())
boxW = 409
boxH = 409
imageW = 4096
imageH = 4096
i = 0
nwidth = 4096
nheight = 4096
pixels = zeros('f', nwidth * nheight)
for x in xrange(0,imageW,1):
for y in xrange (0,imageH,1):
imp.setRoi( y, x, boxW, boxH)
# rimp = imp.getRoi
stats = IS.getStatistics(ip, options, imp.getCalibration())
# print x, ",", y, ",", stats.stdDev
pixels[i] = stats.stdDev
i += 1
#generate image of local stdDev
fp = FloatProcessor(nwidth, nheight, pixels, None)
imp = ImagePlus("Local StdDev", fp)
imp.show()
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html