回答編集履歴

4

2020/01/09 10:04

投稿

退会済みユーザー
test CHANGED
@@ -3,14 +3,6 @@
3
3
  しかし、ブロックの輪郭が繋がっていないため、輪郭抽出することができません。また、ハフ変換により直線検出により、輪郭抽出を行い、面積の大きさによりブロック以外の面積をフィルタしようとしましたが、直線を検知しすぎて上手くいきませんでした。もしかしたら、値の設定など上手くできていなかったのかもしれませんが。。。
4
4
 
5
5
  何か各ブロックを認識できるいい方法はございませんか。
6
-
7
-
8
-
9
-
10
-
11
- ![処理後](a922c1866cf143464583f395daa445d4.png)
12
-
13
- ![処理後](6f0db1c48ae13e15772c57b1c7d0bbf8.png)
14
6
 
15
7
 
16
8
 

3

ブロックの認識、for文の変更

2020/01/09 10:04

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,32 @@
1
+ ・ブロックの認識ですが、[OpenCVで切れてしまっている輪郭を抽出したい](https://teratail.com/questions/147683)で挙げられているadaptiveThreshold()のcv2.ADAPTIVE_THRESH_GAUSSIAN_Cで処理を行うと、下の画像のようにいい感じにブロックをハッキリと表すことができました。
2
+
3
+ しかし、ブロックの輪郭が繋がっていないため、輪郭抽出することができません。また、ハフ変換により直線検出により、輪郭抽出を行い、面積の大きさによりブロック以外の面積をフィルタしようとしましたが、直線を検知しすぎて上手くいきませんでした。もしかしたら、値の設定など上手くできていなかったのかもしれませんが。。。
4
+
5
+ 何か各ブロックを認識できるいい方法はございませんか。
6
+
7
+
8
+
9
+
10
+
11
+ ![処理後](a922c1866cf143464583f395daa445d4.png)
12
+
13
+ ![処理後](6f0db1c48ae13e15772c57b1c7d0bbf8.png)
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
1
- インデントについて学び、for文の範囲を考え、下記のプログラムに変更することで一括処理をすることができました。
29
+ インデントについて学び、for文の範囲を考え、下記のプログラムに変更することで一括処理をすることができました。
2
30
 
3
31
 
4
32
 

2

for文の変更

2019/11/28 20:35

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- for文のおいてはこちらに変更しましたがしましたが、frame_288.pngのブロック検出した画像、frame_001287.png.png~frame_287.png.pngの名前保存されるようになってしましました。
1
+ インデントについて学び、for文の範囲を考え、下記のプログラムに変更することで一括処理することがでました。
2
2
 
3
3
 
4
4
 

1

for文の変更

2019/11/28 16:26

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- for文のおいてはこちらで解決できました。
1
+ for文のおいてはこちらに変更しましたがしましたが、frame_288.pngのブロックを検出した画像が、frame_001287.png.png~frame_287.png.pngの名前保存されるようになってしましました。
2
2
 
3
3
 
4
4
 
@@ -9,3 +9,13 @@
9
9
  img = cv2.imread('images/video/frame_{0:03}.png'.format(i))
10
10
 
11
11
  ```
12
+
13
+ ```python
14
+
15
+ for i in range(1,288):
16
+
17
+
18
+
19
+ cv2.imwrite('images/aaa/frame_{0:03}.png'.format(i), img)
20
+
21
+ ```