小编pip*_*azo的帖子

将3x1或1x3 cv :: Mat转换为cv :: Point3d?

我正在处理一些代码,其中使用旋转矩阵进行大量3x3矩阵乘法以及3d点的一些转换等.我决定使用OpenCV核心功能进行数学运算.使用添加到cv::Mat类中的最近构造函数将cv::Point3d直接转换为3x1 的可能性cv::Mat大大减少并简化了代码.

我现在想知道的是,是否有一种简单的方法将3x1或1x3 cv::Mat转换为cv::Point3d?我总是可以这样做:

cv::Mat mat(3,1,CV_64FC1);
cv::Point3d p (mat.at<double>(0,0), mat.at<double>(1,0), mat.at<double>(2,0));
Run Code Online (Sandbox Code Playgroud)

要么

cv::Mat mat(3,1,CV_64FC1);
const double *data = mat.ptr<double>(0);
cv::Point3d p (data[0], data[1], data[2]);
Run Code Online (Sandbox Code Playgroud)

我非常担心性能(避免3次调用at方法).

c++ opencv matrix

9
推荐指数
1
解决办法
8171
查看次数

CMake:使用 MinGW 交叉编译 linux 到 windows 未找到某些系统头文件

我正在尝试使用 MinGW 将一个配置了 CMake 的项目从 Linux 交叉编译到 Windows,但找不到一些系统头文件。这是我遇到的错误:

[  1%] Building C object src/CMakeFiles/exiv2lib_int.dir/localtime.c.obj
cd /home/luis/programming/buildExiv2Mingw/src && /usr/bin/x86_64-w64-mingw32-gcc-posix -Dexiv2lib_STATIC @CMakeFiles/exiv2lib_int.dir/includes_C.rsp  -o CMakeFiles/exiv2lib_int.dir/localtime.c.obj   -c /home/luis/programming/exiv2/src/localtime.c
In file included from /home/luis/programming/exiv2/src/localtime.c:31:0:
/home/luis/programming/exiv2/src/private.h:50:10: fatal error: cstdlib: No such file or directory
 #include <cstdlib>

[ 17%] Building CXX object src/CMakeFiles/exiv2lib.dir/basicio.cpp.obj
In file included from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ext/string_conversions.h:41:0,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/basic_string.h:6349,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/string:52,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/locale_classes.h:40,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/ios_base.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ios:42,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ostream:38,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/iterator:64,
                 from /home/luis/programming/exiv2/include/exiv2/slice.hpp:34,
                 from /home/luis/programming/exiv2/include/exiv2/types.hpp:36,
                 from /home/luis/programming/exiv2/include/exiv2/value.hpp:36,
                 from /home/luis/programming/exiv2/include/exiv2/metadatum.hpp:38,
                 from /home/luis/programming/exiv2/include/exiv2/datasets.hpp:33,
                 from /home/luis/programming/exiv2/src/basicio.cpp:26:
/usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/cstdlib:75:15: fatal error: …
Run Code Online (Sandbox Code Playgroud)

linux gcc mingw cmake cross-compiling

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

cmake ×1

cross-compiling ×1

gcc ×1

linux ×1

matrix ×1

mingw ×1

opencv ×1