【发布时间】:2020-11-05 01:04:41
【问题描述】:
我在实施梯度下降算法来解决图像去模糊的优化问题时遇到了麻烦。
这是我的初始优化函数:
E[u] = |g - u*k|^2 + λ
其中 g 是模糊图像,u 是清晰图像,k 是 2x2 模糊核,lambda 是正则化项。
我找到了渐变并尝试使用不同的参数来实现它。但是,我的图像只会变得更模糊。这是我的代码。
grad = np.zeros((30,30))
cur_img = blur(sample_image)
g = blur(sample_image)
rate = 0.01
max_iters = 2000
iters = 0
while iters < max_iters:
prev_img = cur_img
for i in range(28):
for j in range(28):
# Calculate gradient
grad[i,j] = prev_img[i,j] + 0/5*prev_img[i-1,j-1] + 0/5*prev_img[i+1,j+1] - g[i-1,j-1]-g[i,j]
# Gradient Descent
cur_img = cur_img - rate * grad
iters = iters+1
plt.imshow(cur_img, cmap ="gray")
plt.show()
请帮助我了解实现这一点的正确方法。任何帮助将不胜感激。
【问题讨论】:
标签: python algorithm optimization computer-vision convolution