我对OpenCV相当陌生,并且正在使用OpenCV的Java包装器。在我的应用程序中,我正在检测轮廓,然后在其周围制作凸面壳。 Imgproc.convexHell(matofpoint,matofint);为我提供MatOfInt形式的船体值。
现在我想在图像中打印matofint,但是要打印Imgproc。 drawContour()需要MatOfPoint。
所以我的问题是如何将MatOfInt转换为MatOfPoint
最佳答案
public static MatOfPoint convertIndexesToPoints(MatOfPoint contour, MatOfInt indexes) {
int[] arrIndex = indexes.toArray();
Point[] arrContour = contour.toArray();
Point[] arrPoints = new Point[arrIndex.length];
for (int i=0;i<arrIndex.length;i++) {
arrPoints[i] = arrContour[arrIndex[i]];
}
MatOfPoint hull = new MatOfPoint();
hull.fromArray(arrPoints);
return hull;
}