とか、など

プログラミングとか、画像処理とか、機械学習を勉強しようとして挫折中

python3 opencv3入門-モフォロジーやで

モフォロジーとかモルフォロジーとか言われるやつですね。

膨張・収縮・オープニング・クロージング 画像処理ソリューション

ざっとこの辺を見て勉強してください。

 

さて、コードですが、サイズを決めて、関数を呼ぶだけです

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('./images/lenna.jpg', 0)
ret, binary = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
#カーネル要するにどれだけ強くモフォロジーをかけるかということ
kernel = np.ones((5, 5), np.uint8)
#モフォロジー処理
elosion = cv2.erode(binary, kernel, iterations = 1)#収縮
dilation = cv2.dilate(binary, kernel, iterations = 1)#膨張
closing = cv2.morphologyEx(binary, cv2.MORPH_CLOSE, kernel)#クロージング
opening = cv2.morphologyEx(binary, cv2.MORPH_OPEN, kernel)#オープニング

plt.subplot(231), plt.imshow(img, 'gray'), plt.title('ORIGINAL')
plt.subplot(232), plt.imshow(binary, 'gray'), plt.title('BIN')
plt.subplot(233), plt.imshow(elosion, 'gray'), plt.title('ELODED')
plt.subplot(234), plt.imshow(dilation, 'gray'), plt.title('DILATED')
plt.subplot(235), plt.imshow(closing, 'gray'), plt.title('CLOSED')
plt.subplot(236), plt.imshow(opening, 'gray'), plt.title('OPENED')
plt.show()

f:id:hikuIchi:20160206182907p:plain

もう少し、解りやすい画像にすればよかったです。