質問編集履歴

4

画像を削除したため

2022/03/06 09:25

投稿

Manabi
Manabi

スコア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

読みづらかったため

2022/02/23 14:12

投稿

Manabi
Manabi

スコア4

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

コードが読みづらかったため

2022/02/23 14:11

投稿

Manabi
Manabi

スコア4

test CHANGED
File without changes
test CHANGED
@@ -13,35 +13,34 @@
13
13
 
14
14
 
15
15
  すみません....
16
- --------------------成功した2画像入力------------------
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
- import cv2
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

スクショをコードのコピペに変更いたしました。

2022/02/23 06:42

投稿

Manabi
Manabi

スコア4

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
+ このように表示されました。