Python矩阵卷积,不使用numpy.convolve或scipy等效函数

时间:2015-10-18 18:06:29

标签: python arrays numpy matrix convolution

我需要编写矩阵卷积而不使用任何内置函数来提供帮助。我正在拍摄图像并将其转换为灰度图像,然后我应该在其上面传递滤镜矩阵。我必须使用的滤波器矩阵之一是:

[[-1,0,1],
[-1,0,1],
[-1,0,1]]

我理解卷积是如何工作的,我只是不了解如何将卷积应用于代码。这是我用来获取灰度数组的代码:

import numpy
from scipy import misc
mylist = []
for i in myfile:
    mylist.append(i)

for i in mylist:
    q = i
    print(q)
    image = misc.imread(q[0:-1])
    threshold()
image = misc.imread('image1.png')


def averageArr(pixel): #make the pixel color values more realistic
    return 0.299*pixel[:,:,0] + 0.587*pixel[:,:,1] + 0.114*pixel[:,:,2]

def threshold():
    picture = averageArr(image)
    for i in range(0,picture.shape[0]): #begin thresholding 
        for j in range(0,picture.shape[1]):
            myList.append(i,j)
    misc.imsave('image1.png') #save the image file

我从函数中获取值,并将它们添加到列表中,然后我应该遍历列表,但我不知道如何去做。我可以使用scipy和numpy来读取和排列矩阵,但必须编写实际的卷积函数。

0 个答案:

没有答案