回答編集履歴

2

2018/10/18 02:37

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -37,3 +37,75 @@
37
37
 
38
38
 
39
39
  [参考リンク](http://pynote.hatenablog.com/entry/opencv-morpology#%E6%BC%94%E7%AE%97%E3%81%AE%E7%A8%AE%E9%A1%9E)
40
+
41
+
42
+
43
+ ## 追記
44
+
45
+
46
+
47
+ ```python
48
+
49
+ import matplotlib.pyplot as plt
50
+
51
+ import numpy as np
52
+
53
+
54
+
55
+ # 入力画像を作成する。
56
+
57
+ src = np.zeros((3, 9), dtype=np.uint8)
58
+
59
+ src[1, 2] = 255
60
+
61
+ src[1, 6] = 255
62
+
63
+ plt.imshow(src, cmap='gray')
64
+
65
+ plt.show()
66
+
67
+
68
+
69
+ kernel = np.array([[1, 1, 1]])
70
+
71
+ dst = cv2.morphologyEx(src, cv2.MORPH_DILATE, kernel,
72
+
73
+ borderType=cv2.BORDER_CONSTANT, borderValue=0)
74
+
75
+ plt.imshow(dst, cmap='gray')
76
+
77
+ plt.show()
78
+
79
+
80
+
81
+ # 縁を除く ROI を作成して、dilate する。
82
+
83
+ dst = src.copy()
84
+
85
+ dst[1:-1, 1:-1] = cv2.morphologyEx(dst[1:-1, 1:-1], cv2.MORPH_DILATE, kernel, iterations=2,
86
+
87
+ borderType=cv2.BORDER_CONSTANT, borderValue=0)
88
+
89
+ plt.imshow(dst, cmap='gray')
90
+
91
+ plt.show()
92
+
93
+ ```
94
+
95
+
96
+
97
+ ![イメージ説明](a7b729ecd082e00cd3468bda59ba4129.png)
98
+
99
+ 入力画像
100
+
101
+
102
+
103
+ ![イメージ説明](1a319089f576bc5ea56bd781c30711f9.png)
104
+
105
+ 入力画像に対して dilate を1回した結果
106
+
107
+
108
+
109
+ ![イメージ説明](07873c2c666a2673125c35d5284508dc.png)
110
+
111
+ 入力画像の外周のピクセルを除いて dilate を2回した結果

1

2018/10/18 02:37

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- morphologyEx() の第4引数 kernel で各走査点での処理する画素を定義しているので、ここを以下のようにカーネルを自分で定義することで、特定の方向だけ収縮したり、膨張したりもできます。
5
+ kernel 引数で各走査点での処理する画素を定義しているので、ここを以下のようにカーネルを自分で定義することで、特定の方向だけ収縮したり、膨張したりもできます。
6
6
 
7
7
 
8
8