1. Suppose a is a filter and b is a patch of an image: a = np.array([1, 2, 1], [2, 4, 2], [1, 2, 1]]) / 16 b = np.zeros((3,3)) b[:3,0] = 1 b[1,1] = 2 1a. Compute the output pixel in a convolution when the filter a overlaps the image neighborhood b. Use array operations and the sum function. 1b. Compute the same product as above, but using the dot function. Hint: you'll need to reshape the inputs to dot first! 2. Load the van.png image and save out a grayscale version computed by averaging the three color channels; be sure to do the averaging in floating-point 3a.Load the van image do a naive 2x subsampling: drop every other row and column and save out the half-size version. 3b. Load the van image and do a naive 2x upsampling: repeat every other row and column twice.