【问题标题】:Standard deviation image analysis标准差图像分析
【发布时间】: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


    【解决方案1】:

    已解决,图像未添加到列表中,必须将 .append() 替换为 .insert()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-07
      • 2019-04-10
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      • 2014-02-27
      • 2019-07-10
      相关资源
      最近更新 更多