gpt4 book ai didi

java - 如何使用java制作一个空Mat?

转载 作者:行者123 更新时间:2023-12-01 04:27:21 24 4
gpt4 key购买 nike

这是 obj-C 代码:

std::vector<Point2f> obj_corners(4);
obj_corners[0] = cvPoint(0,0);
obj_corners[1] = cvPoint(img_object.cols, 0 );
obj_corners[2] = cvPoint(img_object.cols, img_object.rows );
obj_corners[3] = cvPoint(0, img_object.rows );

std::vector<Point2f> scene_corners(4);
perspectiveTransform(obj_corners, scene_corners, H);

我想将其更改为java。但是,当我从文档中检查 perspectiveTransform 函数时,它变为 Mat 而不是 vector:

http://docs.opencv.org/java/org/opencv/core/Core.html#perspectiveTransform(org.opencv.core.Mat,%20org.opencv.core.Mat,%20org.opencv.core.Mat)

如何在 Java 中做同样的事情?谢谢。

最佳答案

现在无法测试,但应该是这样的:

Mat result = getPerspectiveTransformation(scene_corners,W,H);//assuming you also have H somewhere

Mat getPerspectiveTransformation(Point[] points, int w, int h) {
Point[] canonicalPoints = new Point[4];
canonicalPoints[0] = new Point(w, 0);
canonicalPoints[1] = new Point(0, 0);
canonicalPoints[2] = new Point(0, h);
canonicalPoints[3] = new Point(w, h);

MatOfPoint2f canonicalMarker = new MatOfPoint2f();
canonicalMarker.fromArray(canonicalPoints);

MatOfPoint2f marker = new MatOfPoint2f(points);
return Imgproc.getPerspectiveTransform(marker, canonicalMarker);
}

关于java - 如何使用java制作一个空Mat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18401567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com