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

質問編集履歴

10

誤字

2021/01/22 02:50

投稿

suzukill
suzukill

スコア1

title CHANGED
@@ -1,1 +1,1 @@
1
- OpenCVを使って撮影した映像から動体を検知し、そのシーンを画像として保存したいす。
1
+ error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'コードが動きません
body CHANGED
File without changes

9

補足の追加

2021/01/22 02:50

投稿

suzukill
suzukill

スコア1

title CHANGED
File without changes
body CHANGED
@@ -11,39 +11,53 @@
11
11
  import cv2
12
12
  save_path = "./sample"
13
13
  def main():
14
+   # 映像の取得
14
15
  cap = cv2.VideoCapture("./movie.mp4")
15
16
  img1 = img2 = img3 = get_image(cap)
17
+ # 閾値の設定
16
18
  th = 50
17
19
  num = 1
18
20
  while True:
19
21
  ret, frame = cap.read()
20
22
  if not ret:
21
23
  break
24
+ # Enterキーが押されたら終了
22
25
  if cv2.waitKey(1) == 13: break
23
26
  diff = check_image(img1, img2, img3)
27
+ # 差分がthの値以上なら動きがあったと判定
24
28
  cnt = cv2.countNonZero(diff)
25
29
  if cnt > th:
26
30
  print("動体を検出")
27
31
  cv2.imshow('PUSH ENTER KEY', img3)
32
+ # 閾値以上の写真を画像として保存
28
33
  cv2.imwrite(save_path + str(num) + ".jpg", img3)
29
34
  num += 1
30
35
  else:
31
36
  cv2.imshow('PUSH ENTER KEY', diff)
37
+ # 比較用の画像を保存
32
38
  img1, img2, img3 = (img2, img3, get_image(cap))
39
+ # 後始末
33
40
  cap.release()
34
41
  cv2.destroyAllWindows()
35
42
 
43
+ # 画像に動きがあったか調べる関数
36
44
  def check_image(img1, img2, img3):
45
+ # グレイスケール画像に変換
37
46
  gray1 = cv2.cvtColor(img1, cv2.COLOR_RGB2GRAY)
38
47
  gray2 = cv2.cvtColor(img2, cv2.COLOR_RGB2GRAY)
39
48
  gray3 = cv2.cvtColor(img3, cv2.COLOR_RGB2GRAY)
49
+ # 絶対差分を調べる
40
50
  diff1 = cv2.absdiff(gray1, gray2)
41
51
  diff2 = cv2.absdiff(gray2, gray3)
52
+ # 論理積を調べる
42
53
  diff_and = cv2.bitwise_and(diff1, diff2)
54
+ # 白黒二値化
43
55
  _, diff_wb = cv2.threshold(diff_and, 30, 255, cv2.THRESH_BINARY)
56
+ # ノイズの除去
44
57
  diff = cv2.medianBlur(diff_wb, 5)
45
58
  return diff
46
59
 
60
+ # 映像から画像を取得する
47
61
  def get_image(cap):
48
62
  img = cap.read()[1]
49
63
  img = cv2.resize(img, (600, 400))

8

誤字の修正

2021/01/21 11:31

投稿

suzukill
suzukill

スコア1

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,8 @@
6
6
 
7
7
 
8
8
  ### 該当のソースコード
9
+
9
- ```ここに言語を入力
10
+ ```python
10
11
  import cv2
11
12
  save_path = "./sample"
12
13
  def main():
@@ -49,6 +50,7 @@
49
50
  print(img.shape)
50
51
  return img
51
52
  main()
53
+ ```
52
54
 
53
55
 
54
56
 

7

誤字

2021/01/21 10:49

投稿

suzukill
suzukill

スコア1

title CHANGED
File without changes
body CHANGED
@@ -50,10 +50,6 @@
50
50
  return img
51
51
  main()
52
52
 
53
- python```ここに言語を入力python
54
- コード
55
- ```
56
- ```
57
53
 
58
54
 
59
55
  ### 補足情報(FW/ツールのバージョンなど)

6

誤字

2021/01/21 10:46

投稿

suzukill
suzukill

スコア1

title CHANGED
File without changes
body CHANGED
@@ -50,7 +50,7 @@
50
50
  return img
51
51
  main()
52
52
 
53
- ```ここに言語を入力python
53
+ python```ここに言語を入力python
54
54
  コード
55
55
  ```
56
56
  ```

5

文法

2021/01/21 10:46

投稿

suzukill
suzukill

スコア1

title CHANGED
File without changes
body CHANGED
@@ -48,7 +48,9 @@
48
48
  img = cv2.resize(img, (600, 400))
49
49
  print(img.shape)
50
50
  return img
51
+ main()
52
+
51
- main()```ここに言語を入力python
53
+ ```ここに言語を入力python
52
54
  コード
53
55
  ```
54
56
  ```

4

誤字

2021/01/21 10:45

投稿

suzukill
suzukill

スコア1

title CHANGED
File without changes
body CHANGED
@@ -47,10 +47,10 @@
47
47
  img = cap.read()[1]
48
48
  img = cv2.resize(img, (600, 400))
49
49
  print(img.shape)
50
+ return img
50
- return img```ここに言語を入力
51
+ main()```ここに言語を入力python
51
52
  コード
52
53
  ```
53
- main()
54
54
  ```
55
55
 
56
56
 

3

文法の修正

2021/01/21 10:45

投稿

suzukill
suzukill

スコア1

title CHANGED
File without changes
body CHANGED
@@ -6,6 +6,7 @@
6
6
 
7
7
 
8
8
  ### 該当のソースコード
9
+ ```ここに言語を入力
9
10
  import cv2
10
11
  save_path = "./sample"
11
12
  def main():
@@ -46,8 +47,11 @@
46
47
  img = cap.read()[1]
47
48
  img = cv2.resize(img, (600, 400))
48
49
  print(img.shape)
49
- return img
50
+ return img```ここに言語を入力
51
+ コード
52
+ ```
50
53
  main()
54
+ ```
51
55
 
52
56
 
53
57
  ### 補足情報(FW/ツールのバージョンなど)

2

誤字の修正

2021/01/21 10:43

投稿

suzukill
suzukill

スコア1

title CHANGED
@@ -1,1 +1,1 @@
1
- error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'でコドがうまく実行されません
1
+ OpenCVを使って撮影した映像から動体を検知し、そのシンを画像として保存したいです。
body CHANGED
@@ -51,4 +51,5 @@
51
51
 
52
52
 
53
53
  ### 補足情報(FW/ツールのバージョンなど)
54
- プログラミング初学者ですが、ネットで調べたWebカメラを使ってリアルタイムに動体を検出するコードを参考に作ったのでコードに大きな間違いはないはずなのですが、、。
54
+ プログラミング初学者ですが、ネットで調べたWebカメラを使ってリアルタイムに動体を検出するコードを参考に作ったのでコードに大きな間違いはないはずなのですが、、。
55
+ もしほかにいい構文があれば教えて頂きたいです。

1

誤字の修正

2021/01/21 10:40

投稿

suzukill
suzukill

スコア1

title CHANGED
File without changes
body CHANGED
@@ -51,4 +51,4 @@
51
51
 
52
52
 
53
53
  ### 補足情報(FW/ツールのバージョンなど)
54
- プログラミング初学者ですが、ネットで調べたWebカメラを使ってリアルタイムに動体を検出するコードを参考に作ったのでコードに大きな間違いはないはず。パスが間違えてるときとかにこのようエラーってるんでかね?
54
+ プログラミング初学者ですが、ネットで調べたWebカメラを使ってリアルタイムに動体を検出するコードを参考に作ったのでコードに大きな間違いはないはずなですが、、。