标准偏差图像分析

问题描述

我目前正在运行一个程序,在其中读取图像文件夹,这些图像被转换为​​ .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,255) 
stdImg=np.uint8(stdImg)
mplot.imshow(stdImg)

此后,剩下的就是将标准偏差与用户定义的阈值进行比较,并突出显示超出阈值的任何区域,这将指示图像列表中的移动。我是 Python 新手,所以这可能是某个地方的一个简单错误。谢谢!

解决方法

解决了,图片没有被添加到列表中,必须用 .insert() 替换 .append()