Creating a vignette filter

Using all the information we have, let's see if we can create a nice vignette filter. The output will look something like the following:

Creating a vignette filter

Here is the code to achieve this effect:

import cv2 import numpy as np img = cv2.imread('input.jpg') rows, cols = img.shape[:2] # generating vignette mask using Gaussian kernels kernel_x = cv2.getGaussianKernel(cols,200) kernel_y = cv2.getGaussianKernel(rows,200) kernel = kernel_y * kernel_x.T mask = 255 * kernel / np.linalg.norm(kernel) output = np.copy(img) # applying the mask to each channel in the input image for i in range(3): output[:,:,i] = output[:,:,i] * mask cv2.imshow('Original', ...

Get OpenCV: Computer Vision Projects with Python now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.