回答編集履歴
1
補足
answer
CHANGED
@@ -33,4 +33,25 @@
|
|
33
33
|
|
34
34
|
とあります。まあそりゃそうだよなって内容ですね、たとえばVFRな映像に`cv::CAP_PROP_FPS`をidentifierにsetやらgetやらしても意味のある結果はどう考えても産まないですよね。
|
35
35
|
|
36
|
-
そんな感じで公式ドキュメント眺めるとええぞ!みたいな話でした。
|
36
|
+
そんな感じで公式ドキュメント眺めるとええぞ!みたいな話でした。
|
37
|
+
|
38
|
+
---
|
39
|
+
|
40
|
+
> しかしこの整数の必要性は何なのでしょうか?
|
41
|
+
|
42
|
+
という疑問が出るだろうと思って
|
43
|
+
|
44
|
+
> メンバ関数名が`set`だけじゃ何をセットするやらわからんので第1引数はそれを識別するものだ、ということがわかりますね。
|
45
|
+
|
46
|
+
と書いたんですが不十分だったようなので補足します。まあ別に`set`/`get`っていう関数に**enumを渡して動的ディスパッチ**しなくても、例えば`set_cap_prop_fps()`みたいな関数を作る実装にしても良かったと思うんですが、シンボル名を減らしたかったのか何なのか、とにかくOpenCVの開発者たちはその選択肢を選ばなかったようです。
|
47
|
+
|
48
|
+
---
|
49
|
+
|
50
|
+
> CV_CAP_PROP_FRAME_WIDTHの正体についてはCamera.Handle,"Width", &nTempを引数とする関数PvAttrUint32Getとしてもいいのでしょうか?
|
51
|
+
|
52
|
+
だめです。落ち着いて上で取り上げた[`VideoCapture::set()`](https://docs.opencv.org/3.4.0/d8/dfe/classcv_1_1VideoCapture.html#aa6480e6972ef4c00d74814ec841a2939)を読んでください。
|
53
|
+
|
54
|
+
> Reading / writing properties involves many layers. Some unexpected result might happens along this chain.
|
55
|
+
`VideoCapture -> API Backend -> Operating System -> Device Driver -> Device Hardware`
|
56
|
+
|
57
|
+
とあります。いいですか?`API Backend`ですよ?で、ググればわかるのですでにお調べのことと思いますが、PvAttrUint32GetっていうのはPvAPIのものです。他のAPIの場合も当然ありえます。
|