首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标准差图像分析

标准差图像分析
EN

Stack Overflow用户
提问于 2021-03-20 02:11:58
回答 1查看 19关注 0票数 0

我目前正在运行一个程序,其中读取了图像的文件夹,这些图像被转换为.float64值,然后我使用这些值来查找平均和标准差图像。然后,我将在图像中绘制随时间的变化,但这部分是在我的问题之后。我已经修补了一段时间了,我已经无可救药地停留在我的标准差上了。

我已经写出了公式的工作原理,我相当确定我的代码完美地反映了这个公式,但是我所有的值都太高了,所以当我试图显示图像时,它完全是白色的。

代码语言:javascript
复制
sumImg = []
imgList = []

在这里,我将遍历我的文件夹,获取图像文件,将它们转换为float64,并将这些值用于平均图像,并为标准差创建图像列表。

代码语言:javascript
复制
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)

这就是我的问题所在,但我不确定。在这个数学中的某个地方,我的值变得比它们应该的值要高得多。

代码语言:javascript
复制
#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的新手,所以这可能是一个简单的错误。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-03-20 02:34:17

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66713592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档