質問編集履歴
4
画像を削除したため
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,10 +6,6 @@
|
|
6
6
|
|
7
7
|
おそらくfor文に問題があると思うのですが自分では今何が間違っていて実行できていないのかわかりません。
|
8
8
|
どなたかわかる方返信よろしくお願いします。
|
9
|
-
|
10
|
-
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-23/027eb129-a9df-478c-a342-587f68b42b11.png)
|
11
|
-
|
12
|
-
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-23/2f20c192-d4e2-4a6d-a4b0-0c62cd27613a.png)
|
13
9
|
|
14
10
|
|
15
11
|
すみません....
|
3
読みづらかったため
test
CHANGED
File without changes
|
test
CHANGED
@@ -35,8 +35,6 @@
|
|
35
35
|
cv2.imshow('IMG_drawMatches',img3)
|
36
36
|
cv2.waitKey(0)
|
37
37
|
```
|
38
|
-
|
39
|
-
|
40
38
|
|
41
39
|
失敗したコード↓
|
42
40
|
```python
|
2
コードが読みづらかったため
test
CHANGED
File without changes
|
test
CHANGED
@@ -13,35 +13,34 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
すみません....
|
16
|
-
|
16
|
+
成功したコード↓
|
17
|
+
```python
|
17
18
|
import cv2
|
18
19
|
import numpy as np
|
19
20
|
img_ = cv2.imread('./IMG_9644.JPG')
|
20
21
|
img1 = cv2.cvtColor(img_, cv2.COLOR_BGR2GRAY)
|
21
|
-
|
22
22
|
img = cv2.imread('./IMG_9646.JPG')
|
23
23
|
img2 = cv2.cvtColor(img_, cv2.COLOR_BGR2GRAY)
|
24
|
-
|
25
24
|
sift = cv2.SIFT_create()
|
26
25
|
#find keypoints
|
27
|
-
|
28
26
|
kp1, des1 = sift.detectAndCompute(img1,None)
|
29
27
|
kp2, des2 = sift.detectAndCompute(img2,None)
|
30
28
|
match = cv2.BFMatcher()
|
31
29
|
matches = match.knnMatch(des1, des2, k =2)
|
32
30
|
good = []
|
33
|
-
|
34
31
|
for m,n in matches:
|
35
|
-
if m.distance < 0.5*n.distance:
|
32
|
+
if m.distance < 0.5*n.distance:
|
36
|
-
good.append([m])
|
33
|
+
good.append([m])
|
37
34
|
img3 = cv2.drawMatchesKnn(img_, kp1, img, kp2,good,None,flags=2)
|
38
35
|
cv2.imshow('IMG_drawMatches',img3)
|
39
36
|
cv2.waitKey(0)
|
40
|
-
|
37
|
+
```
|
41
38
|
|
42
39
|
|
40
|
+
|
43
|
-
|
41
|
+
失敗したコード↓
|
42
|
+
```python
|
44
|
-
|
43
|
+
mport cv2
|
45
44
|
import numpy as np
|
46
45
|
import glob
|
47
46
|
|
@@ -81,9 +80,10 @@
|
|
81
80
|
#cv2.imwrite("f'fea{i:03d}.png",feature)
|
82
81
|
cv2.imshow('IMG_drawMatches',feature)
|
83
82
|
cv2.waitKey(0)
|
83
|
+
```
|
84
84
|
|
85
85
|
|
86
|
-
|
86
|
+
```ここに言語を入力
|
87
87
|
IndexError Traceback (most recent call last)
|
88
88
|
/var/folders/fm/c943c_r93bzd8zk1ht89x4dr0000gn/T/ipykernel_3610/2609149258.py in <module>
|
89
89
|
4 for j in range(len(img)):
|
@@ -93,5 +93,6 @@
|
|
93
93
|
8 # Apply ratio test
|
94
94
|
|
95
95
|
IndexError: index 1414 is out of bounds for axis 0 with size 1414
|
96
|
+
```
|
96
97
|
|
97
98
|
このように表示されました。
|
1
スクショをコードのコピペに変更いたしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,3 +10,88 @@
|
|
10
10
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-23/027eb129-a9df-478c-a342-587f68b42b11.png)
|
11
11
|
|
12
12
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-23/2f20c192-d4e2-4a6d-a4b0-0c62cd27613a.png)
|
13
|
+
|
14
|
+
|
15
|
+
すみません....
|
16
|
+
--------------------成功した2画像入力------------------
|
17
|
+
import cv2
|
18
|
+
import numpy as np
|
19
|
+
img_ = cv2.imread('./IMG_9644.JPG')
|
20
|
+
img1 = cv2.cvtColor(img_, cv2.COLOR_BGR2GRAY)
|
21
|
+
|
22
|
+
img = cv2.imread('./IMG_9646.JPG')
|
23
|
+
img2 = cv2.cvtColor(img_, cv2.COLOR_BGR2GRAY)
|
24
|
+
|
25
|
+
sift = cv2.SIFT_create()
|
26
|
+
#find keypoints
|
27
|
+
|
28
|
+
kp1, des1 = sift.detectAndCompute(img1,None)
|
29
|
+
kp2, des2 = sift.detectAndCompute(img2,None)
|
30
|
+
match = cv2.BFMatcher()
|
31
|
+
matches = match.knnMatch(des1, des2, k =2)
|
32
|
+
good = []
|
33
|
+
|
34
|
+
for m,n in matches:
|
35
|
+
if m.distance < 0.5*n.distance:
|
36
|
+
good.append([m])
|
37
|
+
img3 = cv2.drawMatchesKnn(img_, kp1, img, kp2,good,None,flags=2)
|
38
|
+
cv2.imshow('IMG_drawMatches',img3)
|
39
|
+
cv2.waitKey(0)
|
40
|
+
-----------
|
41
|
+
|
42
|
+
|
43
|
+
--------------失敗した--------------
|
44
|
+
import cv2
|
45
|
+
import numpy as np
|
46
|
+
import glob
|
47
|
+
|
48
|
+
image_path=glob.glob('/view_img/*.JPG')
|
49
|
+
images = []
|
50
|
+
kp = []
|
51
|
+
gray = []
|
52
|
+
des =[]
|
53
|
+
feature = []
|
54
|
+
for image in image_path:
|
55
|
+
img = cv2.imread(image)
|
56
|
+
images.append(img)
|
57
|
+
cv2.imshow("Image",img)
|
58
|
+
cv2.waitKey(0)#0を画像上で入力すると次の画像へ
|
59
|
+
#print(img)
|
60
|
+
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#グレースケール
|
61
|
+
cv2.imshow('grayImg',gray)
|
62
|
+
cv2.waitKey(0)
|
63
|
+
sift = cv2.SIFT_create()
|
64
|
+
#find keypoints
|
65
|
+
kp,des =sift.detectAndCompute(gray,None)#kpには特徴点の座標の情報、desには特徴量記述子の情報が格納
|
66
|
+
cv2.imshow('IMG_keypoints', cv2.drawKeypoints(img,kp,None))
|
67
|
+
cv2.waitKey(0)
|
68
|
+
|
69
|
+
matches =[]
|
70
|
+
match = cv2.BFMatcher()
|
71
|
+
for i in range(len(img)):
|
72
|
+
for j in range(len(img)):
|
73
|
+
if i!= j:
|
74
|
+
matches = match.knnMatch(des[i], des[j], k=2)
|
75
|
+
good = []
|
76
|
+
# Apply ratio test
|
77
|
+
for m,n in matches:
|
78
|
+
if m.distance < 0.5*n.distance:
|
79
|
+
good.append([m])
|
80
|
+
feature = cv2.drawMatchesKnn(img[i], kp[i], img[j], kp[j], good, None, flags=2)
|
81
|
+
#cv2.imwrite("f'fea{i:03d}.png",feature)
|
82
|
+
cv2.imshow('IMG_drawMatches',feature)
|
83
|
+
cv2.waitKey(0)
|
84
|
+
|
85
|
+
|
86
|
+
---------------------------------------------------------------------------
|
87
|
+
IndexError Traceback (most recent call last)
|
88
|
+
/var/folders/fm/c943c_r93bzd8zk1ht89x4dr0000gn/T/ipykernel_3610/2609149258.py in <module>
|
89
|
+
4 for j in range(len(img)):
|
90
|
+
5 if i!= j:
|
91
|
+
----> 6 matches = match.knnMatch(des[i], des[j], k=2)
|
92
|
+
7 good = []
|
93
|
+
8 # Apply ratio test
|
94
|
+
|
95
|
+
IndexError: index 1414 is out of bounds for axis 0 with size 1414
|
96
|
+
|
97
|
+
このように表示されました。
|