课程作业
代码测试过,是没问题的。
import matplotlib.pyplot as plt
import numpy as np
from numpy import fft
import math
import cv2
def make_PSF(kernel_size=15, angle=60):
PSF = np.diag(np.ones(kernel_size)) # 初始模糊核的方向是-45度
angle = angle + 45 # 抵消-45度的影响
M = cv2.getRotationMatrix2D((kernel_size / 2, kernel_size / 2), angle, 1) # 生成旋转算子
PSF = cv2.warpAffine(PSF, M, (kernel_size, kernel_size), flags=cv2.INTER_LINEAR) #实现旋转变换
PSF = PSF / PSF.sum() #使模糊核的权重和为1
return PSF
#此函数扩展PSF0,使之与image0一样大小
def extension_PSF(image0,PSF0