- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 Xamarin.OpenCV.Droid,
我想将 Point
数组转换为 Mat
。
我知道 Converters
类有几个方法似乎足以进行转换。
但是,我完全不明白 Vector_Point_to_Mat
和 Vector_Point2f_to_Mat
之间的区别。
这两种方法都接收 Point[]
作为参数并返回 Mat
。
有什么区别?
例如,哪个更适合执行 Imgproc.GetPerspectiveTransform
?
最佳答案
在 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);
}
关于c# - Vector_Point_to_Mat 和 Vector_Point2f_to_Mat 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54591868/
我是一名优秀的程序员,十分优秀!