OpenCV

画像処理 「OpenCV 4」画像を鮮鋭化する

今日は画像を鮮鋭化してみます。

カーネルを定義して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()
実行結果