【发布时间】:2021-03-19 18:11:57
【问题描述】:
我目前正在运行一个程序,在该程序中读取图像文件夹,这些图像被转换为 .float64 值,然后我使用这些值来查找平均和标准偏差图像。然后,我将在图像中绘制出随时间变化的变化,但这部分出现在我的问题之后。我已经对此进行了一段时间的修改,但我已经无可救药地陷入了我的标准偏差。
我已经写出了公式的工作原理,并且我相当确定我的代码完美地反映了该公式,但是我的所有值都太高了,所以当我尝试显示图像时全白。
sumImg = []
imgList = []
在这里,我将浏览我的文件夹,获取图像文件,将它们转换为 float64,然后将这些值用于平均图像以及为标准偏差制作图像列表。
for filename in files:
img = Image.open("./data/" + filename)
img = np.float64(img)
imgList.append(img)
try:
sumImg += img
except:
sumImg = img
avgImg = sumImg/len(imgList)
这是我认为我的问题所在,但我不确定。在这个数学的某个地方,我的值正在增长到比他们应该的要高得多。
#standard deviation is:
#the square root of {(the sum of {(every number in your list minus the average) squared})
#divided by the number of items in the list minus 1}
stdImg = []
for image in imgList:
try:
stdImg += (image - avgImg)**2
except:
stdImg = (image - avgImg)**2
stdImg = np.sqrt(stdImg/(len(imgList)))
stdImg = np.clip(stdImg, 0, 255)
stdImg=np.uint8(stdImg)
mplot.imshow(stdImg)
在此之后,剩下的就是将标准偏差与用户定义的阈值进行比较,并突出显示任何超过阈值的区域,这将表明图像列表上的移动。我是 Python 新手,所以这可能是某个地方的一个简单错误。谢谢!
【问题讨论】:
标签: python image matplotlib standard-deviation