In connection with this last function, there are some options you can try in order to sharpen the edges of your images. One simple approach is to perform what is known as unsharp masking, where an unsharp, or smoothed, version of an image is subtracted from the original image. In the following example, a Gaussian smoothing filter has been applied first and the resulting image is subtracted from the original image:
smoothed = cv2.GaussianBlur(img, (9, 9), 10)
unsharped = cv2.addWeighted(img, 1.5, smoothed, -0.5, 0)
Another option is to use a specific kernel for sharpening edges and then apply the cv2.filter2D() function. In the sharpening_techniques.py script, there are some defined kernels that can be applied for this purpose. The output of this script is shown in the following screenshot:
In the preceding screenshot, you can see the effect of applying different sharpening kernels, which can be seen in the sharpening_techniques.py script.