今日は画像を鮮鋭化してみます。
カーネルを定義してfilter2Dで適用します。
kernel = np.array([[-k, -k, -k], [-k, 1+8*k, -k], [-k, -k, -k]])
image = cv2.filter2D(image, ddepth=-1, kernel=kernel)
サンプルコード
import cv2
import numpy as np
import matplotlib.pyplot as plt
image = cv2.imread("image.png")
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
plt.subplot(1, 3, 1)
plt.title('original')
plt.imshow(image)
image = cv2.GaussianBlur(image, ksize=(5, 5), sigmaX=1)
plt.subplot(1, 3, 2)
plt.title('cv2.GaussianBlur')
plt.imshow(image)
k = 1.0
kernel = np.array([[-k, -k, -k], [-k, 1+8*k, -k], [-k, -k, -k]])
image = cv2.filter2D(image, ddepth=-1, kernel=kernel)
plt.subplot(1, 3, 3)
plt.title('Sharpening')
plt.imshow(image)
plt.show()