回答編集履歴
2
V4Lの代替
answer
CHANGED
@@ -4,4 +4,17 @@
|
|
4
4
|
対策はカメラのcapの部分を以下に差し替えてください。
|
5
5
|
```Python3
|
6
6
|
cap = cv2.VideoCapture(0, cv2.CAP_V4L2)
|
7
|
-
```
|
7
|
+
```
|
8
|
+
|
9
|
+
追記
|
10
|
+
---
|
11
|
+
たぶんですが、
|
12
|
+
- OpenCVが非MACの環境でOpenCVがコンパイルされたせいで、WindowsやLinuxの標準バックエンドが既定でロードされてしまっていた(今回の質問の件)
|
13
|
+
- そこに私が提案したV4LもLinux用なのでMACのバックエンドとして適さなかった(カメラが開けませんでした、の件)
|
14
|
+
|
15
|
+
のような気がしています。そこで、気になってリファレンスを少し調べました。すると、第二引数のV4Lの部分を[ほかにも](https://docs.opencv.org/3.4/d4/d15/group__videoio__flags__base.html#gga023786be1ee68a9105bf2e48c700294dacf10e9692c4166f74de62b7d00c377d0)変えられるらしいことがわかりました。
|
16
|
+
|
17
|
+
MACでどれを指定すればよいかはわかりませんが、「GSTREAMERでもV4Lでもないバックエンドの何か(?)」であればうまくいきそうな気がします。
|
18
|
+
|
19
|
+
Qiitaの[オオタニシンヤさんの記事](https://qiita.com/shinya_ohtani/items/9b38252b80bbbb7a7201)を参考にすると、上述の`cv2.CAP_V4L2`の部分を、`cv2.CAP_FFMPEG`や`cv2.CAP_AVFOUNDATION`に差し替えるとうまくいきそうです。
|
20
|
+
|
1
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
多分gstremaerが悪さをしています。マックでどうかは分かりませんが、Linuxだと代わりにV4L(video for Linux)経由でカメラにアクセスするとうまくいく可能性が高いです。
|
2
|
-
※経験上gstreamerを入れ直したりあれこれしてもうまくいかないです。大人しく
|
2
|
+
※経験上gstreamerを入れ直したりあれこれしてもうまくいかないです。大人しくv4lを試した方がうまく行きます。
|
3
3
|
|
4
4
|
対策はカメラのcapの部分を以下に差し替えてください。
|
5
5
|
```Python3
|