之前程序是用C++写的,现在想要移植到java平台,需要用java重新写一遍,但是opencv里同一个函数在C++和java里有所变化,比如特征点检测里的detect,在C++里的参数可以是(Mat image,vectorcv::KeyPoint keypointslist),但是在java里只能是(Mat image,KeyPoint keypoints)或者(List image,List keypoints),即输入图像image和输出关键点keypoints必须全是List或全不是List,但是一幅图像提取出的特征点有好多,大概几千个。可能是我的理解有偏差,不用list也可以存储多个keypoints;
第二个问题是:返回keypoints后,怎么从中提取出里面的属性(pt.x,pt.y,angle,class_id,octave,response,size)呢?我是想读出来存储在txt文件里,已在C++里实现。
java小白,只看过基本的语法,没什么项目经验,求大神解惑!
MatOfKeyPoint mkp =new MatOfKeyPoint ();
fd.detect(test_mat, mkp);
for (KeyPoint keyPoint :mkp.toList() ) {
System.out.println( keyPoint.pt.x+","+keyPoint.pt.y);
}
我也是opencv新手,希望能学习下。
楼主还在么 有个问题想请教一下