teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

コードを更新しました。

2021/06/26 16:44

投稿

ques346
ques346

スコア60

title CHANGED
File without changes
body CHANGED
@@ -13,7 +13,7 @@
13
13
  from PIL import Image
14
14
  from IPython.display import display
15
15
 
16
- img = Image.open("drive/My Drive/mnist_dataset/alpha.jpg")
16
+ img = Image.open("drive/My Drive/mnist_dataset/box.jpg")
17
17
  img = img.resize((40, 40))
18
18
 
19
19
  img = img.convert('L')
@@ -24,21 +24,21 @@
24
24
 
25
25
  np.set_printoptions(threshold=10000)
26
26
 
27
- imger = []
27
+ imger = np.zeros((40,40))
28
28
 
29
+ # 両方の組み合わせ
30
+ imger = np.zeros((40,40))
31
+
29
- for i in range(40):
32
+ for i in range(39):
30
33
  for j in range(36):
31
34
  if (img[i][j] == 0 and img[i][j+1] == 0 and img[i][j+2] == 0 and img[i][j+3] == 1 and img[i][j+4] == 1 and img[i][j+5] == 1):
32
- print('黒黒黒白白白の右端の黒の部分行目、列目の順。', i, j+2)
35
+ print('黒黒黒白白白の右端の黒の部分行目(縦)、列目(横)の順。', i, j+2)
33
- np.append(imger[i], j+2)
34
-
35
- print(img[i])
36
+ k=i
36
-
37
- for i in range(39):
37
+ m=1
38
- for j in range(39):
39
- if (img[i+1][j]-2 <= img[i][j] <= img[i+1][j]+3):
38
+ while (img[k+m][j] == 0 and img[k+m][j+1] == 0 and img[k+m][j+2] == 0 and img[k+m][j+3] == 1 and img[k+m][j+4] == 1 and img[k+m][j+5] == 1):
39
+ m = m+1
40
- print('ある行の黒黒黒白白白の右端の黒の部分次の行の黒黒黒白白白とかぶっている部分の「ある行」右端黒の部分行目、列目の順。', i, j+2)
40
+ print('黒黒黒白白白の右端の黒の部分(スタート)縦連続最大値連続数が同じ数字個数連続個数の順。', j+2, i, m)
41
- img[i][j+1]-img[i][j]
41
+ # 両方の組み合わせ
42
42
  ```
43
43
 
44
44
  こんな感じのコードを作りました、具体的には、画像を取り込んで、リサイズ、2値化し、白が連続したあと黒が連続する、または黒が連続したあと白が連続する部分の行列インデックスを二次元リストに格納し、

1

えらーが発生してしまいました。

2021/06/26 16:44

投稿

ques346
ques346

スコア60

title CHANGED
File without changes
body CHANGED
@@ -24,18 +24,21 @@
24
24
 
25
25
  np.set_printoptions(threshold=10000)
26
26
 
27
- print(img)
27
+ imger = []
28
28
 
29
29
  for i in range(40):
30
30
  for j in range(36):
31
- if (img[i][j] == 0 and img[i][j+1] == 0 and img[i][j+2] and img[i][j+3] == 0 and img[i][j+4] == 1 and img[i][j+3] == 1 and img[i][j+4] == 1) or (img[i][j] == 0 and img[i][j+1] == 0 and img[i][j+2] and img[i][j+3] == 0 and img[i][j+4] == 1 and img[i][j+3] == 1 and img[i][j+4] == 1):
32
- print(j+2)
33
- a[i].append(j+2)
31
+ if (img[i][j] == 0 and img[i][j+1] == 0 and img[i][j+2] == 0 and img[i][j+3] == 1 and img[i][j+4] == 1 and img[i][j+5] == 1):
32
+ print('黒黒黒白白白の右端の黒の部分、行目、列目の順。', i, j+2)
33
+ np.append(imger[i], j+2)
34
34
 
35
+ print(img[i])
36
+
35
37
  for i in range(39):
36
38
  for j in range(39):
37
- if (img[i+1][j]-2 <= img[i][j] <= img[i+1][j]+4):
39
+ if (img[i+1][j]-2 <= img[i][j] <= img[i+1][j]+3):
40
+ print('ある行の黒黒黒白白白の右端の黒の部分が、次の行の黒黒黒白白白とかぶっている部分の、「ある行の」右端の黒の部分、行目、列目の順。', i, j+2)
38
- print(j+2)
41
+ img[i][j+1]-img[i][j]
39
42
  ```
40
43
 
41
44
  こんな感じのコードを作りました、具体的には、画像を取り込んで、リサイズ、2値化し、白が連続したあと黒が連続する、または黒が連続したあと白が連続する部分の行列インデックスを二次元リストに格納し、
@@ -47,4 +50,6 @@
47
50
  □□□■■■□□□
48
51
 
49
52
  こうなっていたら、
50
- ■の色のついている部分は、隣り合う行で繋がっていると見なせるので、1つの物体と見なす、という事です。
53
+ ■の色のついている部分は、隣り合う行で繋がっていると見なせるので、1つの物体と見なす、という事です。
54
+
55
+ すいませんエラーが発覚しました、直し次第再度うpします。