我被要求在具有给定内核的一维数组上创建一个 mean_filter 函数,假设填充为零。
均值滤波器是一种旨在去除噪声的算法。它需要一个数组,一个内核(比如 K),并用周围 K 值的平均值替换数组的每个值,包括本身在内。
该算法用于图像处理。
我能够做到这一点-
def mean_filter(arr, k):
# applies mean filter to 1-d array with the kernel size 2k+1 . Write your code here
p=len(arr)
arr2=np.zeros(2*k+p, dtype=float)
arr3=np.zeros(2*k+p, dtype=float)
arr4=np.zeros(p, dtype=float)
for i in range(p):
arr2[k+i]=arr[i]
for i in range(k,k+p):
sum=0
for j in range(-k,k+1):
sum+=arr2[i+j]
arr3[i]=sum/float(2*k+1)
for i in range(p):
arr4[i]=arr3[k+i]
return arr4
但是他们对我的期望是在没有任何循环的情况下做到这一点。
指令显示-“这个任务应该在没有任何类型的循环、理解或函数(如 np.vectorize 等)的情况下完成。
不要为此任务使用内置卷积函数“
我真的不知道如何做到这一点。你能建议点什么吗?线索将不胜感激。
拉风的咖菲猫
慕无忌1623718
慕神8447489
相关分类