Tôi đang cố gắng triển khai mã ví dụ sau đây question bằng cách sử dụng apencv java api. Để thực hiện findContours(gray, contours, CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);
trong java tôi đã sử dụng cú pháp này Imgproc.findContours(gray, contours, new Mat(), Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);
.Cách chuyển đổi MatOfPoint thành MatOfPoint2f trong opencv java api
Vì vậy, các đường bao giờ phải là List<MatOfPoint> contours = new ArrayList<MatOfPoint>();
thay vì vector<vector<cv::Point> > contours;
.
Sau đó, tôi cần triển khai thực hiện approxPolyDP(Mat(contours[i]), approx, arcLength(Mat(contours[i]), true)*0.02, true);
này. Trong java api, Imgproc.approxPolyDP chấp nhận đối số là approxPolyDP(MatOfPoint2f curve, MatOfPoint2f approxCurve, double epsilon, boolean closed)
. Làm thế nào tôi có thể chuyển đổi MatOfPoint thành MatOfPoint2f?
Hoặc có cách nào để sử dụng vectơ giống như giao diện C++ để thực hiện điều này không. Bất kỳ đề nghị hoặc mã mẫu được đánh giá cao.
MmOP2f2 đến từ đâu? – user2534365