我正在尝试用android studio开发一个应用程序来捕捉闪烁LED的颜色。 我现在处于这一点,我得到了LED的位置,现在我想确定具有openCV类时刻的边界框中心。
Mat src = new.Mat(Bitmap.getHeight(), Bitmap.getWidth(), CvType.CV_8UC1);
Mat hsv = new Mat();
Utils.bitmapToMat(Bitmap, src);
Imgproc.cvtColor(src,hsv, Imgproc.COLOR_BGR2HSV);
Core.inRange(hsv,LOWER_RED,HIGHER_RED,hsv);
Imgproc.dilate(hsv,hsv,Imgproc.getStructuringElement(Imgproc.MORPH_VECT,new Size(50,50)));
List<MatOfPoint> contours = new ArrayList <>();
Mat hierarchy = new Mat();
Imgproc.findContours(hsv, contours, hierarchy, Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);
hierarchy.release();
//finding Bounding Box Center
List<Moments> mu = new ArrayList<>(contours.size());
mu.add(1, Imgproc.moments(contours.get(1), false));
Utils.matToBitmap(hsv,Bitmap);
//...
带有Moments的行会带来以下错误消息:
找不到double [] org.opencv.imgproc.Imgproc.moments_0(long,boolean)的实现(尝试过Java_org_opencv_imgproc_Imgproc_moments_10和Java_org_opencv_imgproc_Imgproc_moments_10__JZ)
所以,如果我跳转到Imgproc.java,那么该方法会被红色标记并通过鼠标悬停跟随消息弹出:
无法解析相应的JNI函数Java_org_opencv_imgproc_Imgproc_moments_10 报告Java中的本机方法声明,其中没有在项目中找到相应的JNI函数。
感谢您阅读
任何人都可以帮助我吗?