モルフォロジー処理とは、主に二値画像を対象として、図形に対してシンプルな処理を指します。
本稿では、オープニングとクロージングの処理を確認していきます。
オープニング
オープニングは、収縮の後に膨張する処理です。
cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)
サンプルコード
import cv2
import numpy as np
import matplotlib.pyplot as plt
image = cv2.imread('image2.png', 0)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
kernel = np.ones((2, 2), np.uint8)
opening = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)
plt.subplot(1, 2, 1)
plt.title('original')
plt.xticks([]), plt.yticks([])
plt.imshow(image)
plt.subplot(1, 2, 2)
plt.title('opening')
plt.xticks([]), plt.yticks([])
plt.imshow(opening)
plt.show()
クロージング
クロージングは、膨張の後に収縮する処理です。
cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel)
サンプルコード
import cv2
import numpy as np
import matplotlib.pyplot as plt
image = cv2.imread('image3.png', 0)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
kernel = np.ones((3, 3), np.uint8)
closing = cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel)
plt.subplot(1, 2, 1)
plt.title('original')
plt.xticks([]), plt.yticks([])
plt.imshow(image)
plt.subplot(1, 2, 2)
plt.title('closing')
plt.xticks([]), plt.yticks([])
plt.imshow(closing)
plt.show()