# 这是一个加拿大的Python数值方法**Assignment代写**

## 1 Revisiting Image Convolution & Deconvolution

Let’s revisit and generalize the image convolution and deconvolution problems we saw in Assignment 1. This time, instead of only consider a discrete 1D horizontal blur kernel, we will consider more general 2D blurs (i.e., horizontal and vertical).

To illustrate the forward blurring process we extend our previous diagrams, however the “sweep and stamp” process still applies. Our diagram below illustrates a few instances of applying a 3 × 3 blur kernel (i.e., with 9 elements, which we’ve numbered for clarity: ❶, ❷, , ❾) to a input image, and generating a … 5 × 5 5 × 5 output image, e.g.,

The kernel is centered — this time horizontally and vertically — on an input pixel at the location of the corresponding output pixel (illustrated as a circle with black contour and grey fill), and if portions of the kernel happen to fall outside the bounds of the input image, they wrap around (vertically and horizontally,now).

By “sliding” the kernel along each pixel of the uncorrupted input image, weighting the underlying source/input pixels by the overlapping kernel values and summing across these weighted input pixels, we construct the final blurred image one pixel at a time:

Recall, as in Assignment 1, while the diagrams above illustrate the blurring process in 2D and for 2D images and kernels, you will express this linear map as a matrix — and thus — must treat the input (and output) images as “flattened” 1D vectors. Treating this change of indexing from 2D pixel coordinates to flattened 1D “image” vector elements is one part of the learning objective for this task.

### 1.1 Isotropic Gaussian Blur Kernel

One common blur kernel is the discrete isotropic Gaussian kernel. For one-dimensional blurs, the continuous kernel is defined as

where 𝜎 is the standard deviation of the Gaussian, which defines its fall-off rate, and the continuous kernel is defined over the entire real line, i.e., for −∞ ≤ 𝑥 ≤ ∞. In practice, one way to take this continuous kernel and discretize it to have length is to evaluate the kernel at integer lattice values 𝑘 𝑥 ∈ {−⌊ 𝑘2 ⌋, … , ⌊ 𝑘2 ⌋}.

For two-dimensional blur kernels, the continuous isotropic Gaussian is

and its discretized 𝑘 × 𝑘 version is obtained by evaluating on a 2D (𝑥, 𝑦) integer lattice with 𝑥 ∈ {−⌊𝑘/2⌋, … , ⌊𝑘/2⌋} and 𝑦 ∈ {−⌊𝑘/2⌋, … , ⌊𝑘/2⌋}. Note 𝐺2D that can be decomposed as the product of two 1D Gaussians, a fact you can optionally leverage to simplify your implementation.

**程序辅导定制C/C++/JAVA/安卓/PYTHON/留学生/PHP/APP开发/MATLAB**

本网站支持 Alipay WeChatPay PayPal等支付方式

**E-mail:** vipdue@outlook.com **微信号:**vipnxx

如果您使用手机请先保存二维码，微信识别。如果用电脑，直接掏出手机果断扫描。