Questions

  1. Use the scikit-image library's functions to read a collection of images and display them as a montage.
  2. Use the scipy ndimage and misc modules' functions to zoom, crop, resize, and apply Affine transformation to an image.
  3. Create a Python remake of the Gotham Instagram filter (https://github.com/lukexyz/CV-Instagram-Filters) (hint: manipulate an image with the PIL split(), merge(), and numpy interp() functions to create a channel interpolation (https://www.youtube.com/watch?v=otLGDpBglEA&feature=player_embedded)).
  4. Use scikit-image's warp() function to implement the swirl transform. Note that the swirl transform can also be expressed with the following equations:




  1. Implement the wave transform (hint: use scikit-image's warp()given by the following:


  1. Use PIL to load an RGB .png file with a palette and convert into a grayscale image. This problem is taken from this post: https://stackoverflow.com/questions/51676447/python-use-pil-to-load-png-file-gives-strange-results/51678271#51678271. Convert the following RGB image (from the VOC2012 dataset) into a grayscale image by indexing the palette:

  1. Make a 3D plot for each of the color channels of the parrot image used in this chapter (hint: use the mpl_toolkits.mplot3d module's plot_surface() function and NumPy's meshgrid() function).
  1. Use scikit-image's transform module's ProjectiveTransform to estimate the homography matrix from a source to a destination image and use the inverse() function to embed the Lena image (or yours) in the blank canvas as shown in the following:

First try to solve the problems on your own. For your reference, the solutions can be found here: https://sandipanweb.wordpress.com/2018/07/30/some-image-processing-problems/.