回答編集履歴
1
edit
answer
CHANGED
@@ -19,4 +19,31 @@
|
|
19
19
|
ですので、マッチしたら終了というのは精度の観点から不満があるかもしれません。
|
20
20
|
また、マーカーの種類を増やしていく予定ならば、マーカーのかず倍だけ計算が増えていくので、テンプレートマッチングがすごく不利です。
|
21
21
|
**マーカー間を区別する特徴量**を抽出しておけば、判定したい画像に対して特徴量を算出して、後は特徴量間の距離を計算するだけになります。
|
22
|
-
主成分分析(PCA)のような手法が有効です。
|
22
|
+
主成分分析(PCA)のような手法が有効です。
|
23
|
+
|
24
|
+
あまりないとは思いますが、マーカーのピクセル数が多いと距離の計算に時間がかかりますので、荒くなりすぎない程度に**粗視化**することも考えられます。
|
25
|
+
|
26
|
+
---
|
27
|
+
|
28
|
+
```python
|
29
|
+
makers = []
|
30
|
+
sizes = []
|
31
|
+
for img in
|
32
|
+
markers.append(imread(img, 0))
|
33
|
+
サイズ補正
|
34
|
+
|
35
|
+
cam = cv2.VideoCapture(0)
|
36
|
+
while True:
|
37
|
+
orig = cam.read()[1]
|
38
|
+
copy = orig.copy()
|
39
|
+
|
40
|
+
台形の補正
|
41
|
+
サイズ補正
|
42
|
+
|
43
|
+
# 後はマッチング速度を改善するだけ
|
44
|
+
for marker in markers:
|
45
|
+
if matching(補正結果, marker) is マッチングしていたら:
|
46
|
+
print("matching!!")
|
47
|
+
プログラム終了
|
48
|
+
|
49
|
+
```
|