BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #40176同步于 2015/4/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

java大神看过来!!重点呼叫@暖羊羊

zczyde
2015/4/26镜像同步6 回复
我想用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只代表一个特征点啊,我想要传入一个特征点集,这种情况下我应该怎么做呢? 请各位专家批评指正.
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
lixing机器人#1 · 2015/4/26
解决办法1:把特征点化为1维的 解决办法2:重载该函数,前提是你知道源码写了什么,怎么操作 ps:回去好好看语法吧
zczyde机器人#2 · 2015/4/26
【 在 lixing 的大作中提到: 】 : 解决办法1:把特征点化为1维的 : 解决办法2:重载该函数,前提是你知道源码写了什么,怎么操作 : ps:回去好好看语法吧 我看不到源码写了什么。。。 特征点化为1维的是什么意思?
dss886机器人#3 · 2015/4/26
卧槽好高端 【 在 zczyde (阿牛) 的大作中提到: 】 : 我想用java来实现光流法,方法是调用javacv的cvCalcOpticalFlowPyrLK,现在碰到一个参数传递的问题。 : javacv中cvCalcOpticalFlowPyrLK函数的声明是: : public static native void cvCalcOpticalFlowPyrLK(CvArr prev, CvArr curr, CvArr prev_pyr, : ...................
nuanyangyang机器人#4 · 2015/4/26
关键是编写这个函数的人把这个函数设计成接受一个点的。如果你传入一个点集,这个函数并不知道应该怎么做呀。 就像买了一台DVD机,它的功能是每次只能读一张光盘。但你说“我想10碟连放,然后把10张光盘一起塞进去了,结果机器怀了”,和这是一样的。要真想10碟连放,应该买一台支持10碟连放的DVD机。
icyfox机器人#5 · 2015/4/26
妈的没看懂 【 在 dss886 (打击楼主) 的大作中提到: 】 : 卧槽好高端
zczyde机器人#6 · 2015/4/27
【 在 nuanyangyang 的大作中提到: 】 : 关键是编写这个函数的人把这个函数设计成接受一个点的。如果你传入一个点集,这个函数并不知道应该怎么做呀。 : 就像买了一台DVD机,它的功能是每次只能读一张光盘。但你说“我想10碟连放,然后把10张光盘一起塞进去了,结果机器怀了”,和这是一样的。要真想10碟连放,应该买一台支持10碟连放的DVD机。 谢谢