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
膨張は上記のような形で行うことができたのですが、収縮をどのようにすればよいか分かりません。
収縮を上記の膨張のような形で行うにはどうすれば良いかどなたか教えていただければ幸いです。
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。