我最近开始使用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 ++了(所以我真的不记得这个符号)。
感谢您的任何指示: - )
答案 0 :(得分:2)
我理解它的方式;基本上有两种发展方式(进一步详细here;即"基本"和#34;高级"等级;
(高级)使用Android NDK,其中包含所有OpenCV的功能,并具有更容易使用现成C ++代码的额外优势。使用更大的处理流水线也会更快。
(基本级别)无需使用Android NDK。这种方法利用了为java提供的OpenCV API; OpenCV功能的一个子集(当然可能是足够的,依赖于应用程序)。不需要NDK(以及C ++)知识。
根据应用的需要,这两种方法可以一起使用。
关于split
方法; here是Java文档的链接。搜索方法名称split
。要使用Core.split(m,chnl);
,其中m
是Mat
图像对象,而chnl
是List
,其中包含生成的单独频道。
答案 1 :(得分:0)