回答編集履歴

1

補足

2018/02/09 18:24

投稿

yumetodo
yumetodo

スコア5850

test CHANGED
@@ -69,3 +69,45 @@
69
69
 
70
70
 
71
71
  そんな感じで公式ドキュメント眺めるとええぞ!みたいな話でした。
72
+
73
+
74
+
75
+ ---
76
+
77
+
78
+
79
+ > しかしこの整数の必要性は何なのでしょうか?
80
+
81
+
82
+
83
+ という疑問が出るだろうと思って
84
+
85
+
86
+
87
+ > メンバ関数名が`set`だけじゃ何をセットするやらわからんので第1引数はそれを識別するものだ、ということがわかりますね。
88
+
89
+
90
+
91
+ と書いたんですが不十分だったようなので補足します。まあ別に`set`/`get`っていう関数に**enumを渡して動的ディスパッチ**しなくても、例えば`set_cap_prop_fps()`みたいな関数を作る実装にしても良かったと思うんですが、シンボル名を減らしたかったのか何なのか、とにかくOpenCVの開発者たちはその選択肢を選ばなかったようです。
92
+
93
+
94
+
95
+ ---
96
+
97
+
98
+
99
+ > CV_CAP_PROP_FRAME_WIDTHの正体についてはCamera.Handle,"Width", &nTempを引数とする関数PvAttrUint32Getとしてもいいのでしょうか?
100
+
101
+
102
+
103
+ だめです。落ち着いて上で取り上げた[`VideoCapture::set()`](https://docs.opencv.org/3.4.0/d8/dfe/classcv_1_1VideoCapture.html#aa6480e6972ef4c00d74814ec841a2939)を読んでください。
104
+
105
+
106
+
107
+ > Reading / writing properties involves many layers. Some unexpected result might happens along this chain.
108
+
109
+ `VideoCapture -> API Backend -> Operating System -> Device Driver -> Device Hardware`
110
+
111
+
112
+
113
+ とあります。いいですか?`API Backend`ですよ?で、ググればわかるのですでにお調べのことと思いますが、PvAttrUint32GetっていうのはPvAPIのものです。他のAPIの場合も当然ありえます。