1

我有一个读取图像数据的脚本,然后使用 scipy.ndimage 中的中值滤波器迭代图像。从迭代中,我创建了新数组。

但是,当我尝试运行脚本时

run filtering.py

过滤似乎不起作用。新数组 (month_f) 与旧数组相同。

import matplotlib.pyplot as plt
import numpy as numpy
from scipy import ndimage
import Image as Image


# Get images 

#Load images

jan1999 = Image.open('jan1999.tif')
mar1999 = Image.open('mar1999.tif')
may1999 = Image.open('may1999.tif')
sep1999 = Image.open('sep1999.tif')
dec1999 = Image.open('dec1999.tif')
jan2000 = Image.open('jan2000.tif')
feb2000 = Image.open('feb2000.tif')

#Compute numpy arrays

jan1999 = numpy.array(jan1999)
mar1999 = numpy.array(mar1999)
may1999 = numpy.array(may1999)
sep1999 = numpy.array(sep1999)
dec1999 = numpy.array(dec1999)
jan2000 = numpy.array(jan2000)
feb2000 = numpy.array(feb2000)

########### Put arrays into a list

months = [jan1999, mar1999, may1999, sep1999, dec1999, jan2000, feb2000]


############ Filtering = 3,3

months_f = []

for image in months:
    image = scipy.ndimage.median_filter(image, size=(5,5))
    months_f.append(image)

任何帮助将非常感激 :)

4

1 回答 1

0

这是一个评论,但由于声誉限制,我无法写一个。

导入模块的方式有点奇怪。特别是带有同名的“import .. as”。我认为更pythonian的方式是

import matplotlib.pyplot as plt
import numpy as np
from scipy import ndimage
from PIL import Image

然后打电话

image = ndimage.median_filter(image, size=(...))

当我使用 RGB 测试图像运行您的步骤时,它似乎可以工作。

jan1999.shape 返回什么?

于 2015-11-16T16:52:52.857 回答