java问题求助!在线等

zczyde 2015-04-26 03:43:37
我想用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只代表一个特征点啊,我想要传入一个特征点集,这种情况下我应该怎么做呢?


...全文
134 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯狂熊猫人 2015-04-27
  • 打赏
  • 举报
回复
1、CvPoint2D32f 类如果不是final类,那么你可以继承这个类,将你想要的改动在子类中进行重写 2、修改public static native void cvCalcOpticalFlowPyrLK这个本地方法的实现

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧