【发布时间】:2016-05-13 22:43:38
【问题描述】:
我正在尝试自学 opencv 和 c++,而用于面部和眼睛检测的 example program 包括以下行:
for(size_t i = 0; i < faces.size(); i++)
我不明白 faces.size() 是什么意思,从那以后 i 可以大于 faces.size()。
它是如何获取数值的?
我在程序的其余部分中看到了很多人脸实例,但我唯一一次看到大小是作为 face_cascade.detectMultiScale 的参数。不过它是大写的,这让我觉得它与 faces.size() 无关。
【问题讨论】:
-
faces肯定是某种类型的容器的实例(即std::vector或std::map),size只是返回它当时持有的元素数量。如果你对容器感到困惑,我建议你看看@en.cppreference.com/w/cpp/container -
OpenCV 不是开始学习 C++ 的好地方。从没有任何第三方库的 C++ 和 a good book or two 开始。掌握 C++ 的基础知识,然后开始解开 OpenCV
-
@WhozCraig,对于一个像泥巴一样清晰的人来说——冒号是干什么用的?什么是性病? 的东西是干什么用的?那是声明吗?什么是声明?等等……
-
这是一个棘手的问题,@LamarLatrell。我们必须在这里做出的基本假设是提问者具有一定的最低知识;否则所有答案都必须以“一开始……”开头。因此,C++ 文本的前几章需要禁止使用,除非有针对性的问题,这些问题无需先涵盖C++ 文本的前几章。
-
我同意。我不认为将 any 框架混入其中是学习 C++ 的好方法。很多时候,你的注意力从理解和学习语言转移到只学习框架。这很糟糕,因为您最终会错过 很多 的东西,并且您的语言能力会受到影响。如果您对学习语言很认真,请放弃使用 OpenCV,拿起一本好书,然后开始学习。否则,任何教育您有关该语言的努力充其量都是徒劳的。
标签: c++ opencv for-loop vector