|
分類:[.NET 全般]
OpenCV初心者です。
import cv2 import numpy as np
#画像読み込みと画像の高さ・幅の取得 img_src = cv2.imread("./tablets.png", cv2.IMREAD_ANYCOLOR) h = img_src.shape[0] #画像の高さ w = img_src.shape[1] #画像の幅
#入力画像をグレイスケールに変換 img_gray = cv2.cvtColor(img_src, cv2.COLOR_BGR2GRAY)
#空の画像 img_bin = np.zeros((h, w), np.uint8) #2値画像 img_dst1 = np.zeros((h, w), np.uint8) #続く処理後の画像 img_dst2 = np.zeros((h, w), np.uint8) #続く処理後の画像
#2値化 for j in range(h): for i in range(w): if img_gray[j, i] > 192: img_bin[j, i] = 255 #膨張 for j in range(1, h-1): for i in range(1, w-1): #1画素分輪郭を膨らませる処理 max = 0 if max < img_bin[j-1, i-1]: max = img_bin[j-1, i-1] if max < img_bin[j-1, i ]: max = img_bin[j-1, i ] if max < img_bin[j-1, i+1]: max = img_bin[j-1, i+1] if max < img_bin[j , i-1]: max = img_bin[j , i-1] if max < img_bin[j , i ]: max = img_bin[j , i ] if max < img_bin[j , i+1]: max = img_bin[j , i+1] if max < img_bin[j+1, i-1]: max = img_bin[j+1, i-1] if max < img_bin[j+1, i ]: max = img_bin[j+1, i ] if max < img_bin[j+1, i+1]: max = img_bin[j+1, i+1] img_dst1[j, i] = max
膨張は上記のような形で行うことができたのですが、収縮をどのようにすればよいか分かりません。 収縮を上記の膨張のような形で行うにはどうすれば良いかどなたか教えていただければ幸いです。 宜しくお願いします。
|