java问题求助!在线等
我想用java来实现光流法,方法是调用javacv的cvCalcOpticalFlowPyrLK,现在碰到一个参数传递的问题。
javacv中cvCalcOpticalFlowPyrLK函数的声明是:
public static native void cvCalcOpticalFlowPyrLK(CvArr prev, CvArr curr, CvArr prev_pyr,
CvArr curr_pyr, CvPoint2D32f prev_features, CvPoint2D32f curr_features,
int count, @ByVal CvSize win_size, int level, @Cast("char*") byte[] status,
float[] track_error, @ByVal CvTermCriteria criteria, int flags);
其中第五第六两个参数的类型是 CvPoint2D32f ,参数prev_features和curr_features分别表示前一帧图像的特征点和后一帧图像的特征点。
因为特征点不是一个,因此我是这样定义的:
CvPoint2D32f[] point1 = new CvPoint2D32f[MAX_CORNERS] ;
CvPoint2D32f[] point2 = new CvPoint2D32f[MAX_CORNERS] ;
就是用point1、point2数组来存储特征点
cvCalcOpticalFlowPyrLK(image, image2,prev_pyr,curr_pyr, point1, point2,……)
但是传入函数中时会报错,因为函数中的类型是CvPoint2D32f,而不是CvPoint2D32f[]
但是CvPoint2D32f只代表一个特征点啊,我想要传入一个特征点集,这种情况下我应该怎么做呢?