gpt4 book ai didi

c# - Vector_Point_to_Mat 和 Vector_Point2f_to_Mat 有什么区别

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:27 25 4
gpt4 key购买 nike

我正在使用 Xamarin.OpenCV.Droid

我想将 Point 数组转换为 Mat

我知道 Converters 类有几个方法似乎足以进行转换。

但是,我完全不明白 Vector_Point_to_MatVector_Point2f_to_Mat 之间的区别。

这两种方法都接收 Point[] 作为参数并返回 Mat

有什么区别?

例如,哪个更适合执行 Imgproc.GetPerspectiveTransform

https://github.com/NAXAM/opencv-android-binding/

最佳答案

在 C++ 版本中,有基于 int、int64、float 和 double 的 Point 类型。

typedef Point_<int> Point2i;
typedef Point_<int64> Point2l;
typedef Point_<float> Point2f;
typedef Point_<double> Point2d;

在基于 Java 的 OpenCV 中,只有 Point(基于 double ),但是 Java vector_Point(|2d|2f)_to_Mat API 将创建一个具有相应 CvType 的 Mat(通过 native /C++ 调用):

CvType.CV_32SC2 (vector_Point_to_Mat)
CvType.CV_32FC2 (vector_Point2f_to_Mat)
CvType.CV_64FC2 (vector_Point2d_to_Mat)

有关类型的信息:请参阅此 SO:What's the difference between cvtype values in OPENCV?

public static Mat vector_Point_to_Mat(List<Point> pts) {
return vector_Point_to_Mat(pts, CvType.CV_32S);
}

public static Mat vector_Point2f_to_Mat(List<Point> pts) {
return vector_Point_to_Mat(pts, CvType.CV_32F);
}

public static Mat vector_Point2d_to_Mat(List<Point> pts) {
return vector_Point_to_Mat(pts, CvType.CV_64F);
}

回复:https://github.com/opencv/opencv/blob/2c6f1ab57d4250ee46e32d1b51c056431965b470/modules/java/generator/src/java/org/opencv/utils/Converters.java#L37

关于c# - Vector_Point_to_Mat 和 Vector_Point2f_to_Mat 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54591868/

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