如何将opencv代码转换为javacv代码

时间:2014-09-13 17:55:16

标签: java c++ opencv javacv

如何转换此C ++ opencv代码。 (此代码来自opencv中的camshift跟踪演示https://github.com/Itseez/opencv/blob/master/samples/cpp/camshiftdemo.cpp

Mat roi(hue,selection), maskroi(mask,selection);

进入javacv代码?

2 个答案:

答案 0 :(得分:0)

neweast javacpp预设javacpp-presets-0.9已经hava整个opencv javacv版本实现。检查您需要的功能是否可用。 https://github.com/bytedeco/javacpp-presets/tree/master/opencv

如果没有,我认为您需要看到两个c ++函数roi()和maskroi()的定义(实现),以便将自己的行代码转换为javacv。

而且,javacpp的谷歌小组也是一个最好的地方,问你是否有与javacpp相关的问题。 http://groups.google.com/group/javacpp-project

注意:

对于c ++输出参数类型(通过指针调用或通过引用调用),您需要了解java函数参数没有输出类型,因此您需要使用数组作为变通方法,例如:

C ++代码:

void detectBothEars(Mat input, Rect* left, Rect* right);

javacv counterpat应该是:

void detectBothEarsRect(Mat input, Rect[] left, Rect[] right);

客户端代码是:

Rect[] leftRect = new Rect[1];
Rect[] rightRect = new Rect[1];
detectBothEars(face, leftRect , rightRect);

答案 1 :(得分:0)

Java提供了相同的构造函数:public Mat(Mat m, Rect roi)

所以,我们基本上可以做同样的事情:

Mat roi = new Mat(hue, selection), maskroi = new Mat(mask, selection);