我最近开始使用 java 开发 openCV,到目前为止它看起来很棒。我设法检测到面孔并设置了阈值。所以基本上是 101 个东西。
现在,我想更进一步,我想识别“手”或“手指”,但出于某种原因,我注意到 OpenCV 不包含 C++ 具有的所有方法(功能)。 (我这个说法可能有误)
给定
OpenCV cv = new OpenCV();
我能做到:
cv.absDiff();
但我无法使用其他方法,例如:split(退出 openCV 文档,http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html#cv-split)。
所以我的问题是:我在这里缺少什么,或者 OpenCV for java 是有限的吗? 我已经很多年没有使用 C++了(所以我不太记得符号)。
感谢任何指点:-)
最佳答案
我的理解方式;基本上有两种开发方式(详见 here ;即“基本”和“高级”级别);
(高级)使用 Android NDK,它包含所有 OpenCV 的功能,并且具有更容易使用现成的 C++ 代码的额外优势。此外,处理管道越大,速度往往越快。
(初级)不需要使用Android NDK。这种方法利用了为 java 提供的 OpenCV 的 API; OpenCV 功能的一个子集(这可能就足够了,当然取决于应用程序)。不需要 NDK(以及 C++)知识。
这两种方法可以结合使用,具体取决于应用程序的需要。
关于split
方法; here是其 Java 文档的链接。搜索方法名称 split
。要调用它,请使用 Core.split(m,chnl);
其中 m
是 Mat
图像对象,chnl
是包含生成的单独 channel 的 List
。
关于java - java 中的 openCV - 希望使用 split 方法。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8702856/