C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■93798 / )  OpenCV 膨張・収縮
□投稿者/ S (1回)-(2020/02/03(Mon) 16:40:45)

分類:[.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

膨張は上記のような形で行うことができたのですが、収縮をどのようにすればよいか分かりません。
収縮を上記の膨張のような形で行うにはどうすれば良いかどなたか教えていただければ幸いです。
宜しくお願いします。
返信 編集キー/


管理者用

- Child Tree -