C++ 如何转换多维c++;数组转换为openCV形式?
可能重复:C++ 如何转换多维c++;数组转换为openCV形式?,c++,arrays,opencv,multidimensional-array,type-conversion,C++,Arrays,Opencv,Multidimensional Array,Type Conversion,可能重复: 我在C++中有这样的数组: double myValue[600][800][3]; double size[] = {600, 800}; cv::Mat myValue (size, 3, CV_8UC3 ); 我想把它转换成openCV多维矩阵或标量形式。我试过这样做: double myValue[600][800][3]; double size[] = {600, 800}; cv::Mat myValue (size, 3, CV_8UC3 ); 但这是错的,
<>我在C++中有这样的数组:
double myValue[600][800][3];
double size[] = {600, 800};
cv::Mat myValue (size, 3, CV_8UC3 );
我想把它转换成openCV多维矩阵或标量形式。我试过这样做:
double myValue[600][800][3];
double size[] = {600, 800};
cv::Mat myValue (size, 3, CV_8UC3 );
但这是错的,有人能帮我吗 伙计,在提问之前,你必须通过阅读手册或搜索网页来进行基础研究。如果你不这样做,我们很难给你一个可以理解的答案 访问cv::Mat或矩阵转换的元素在OpenCV中是非常基本的。请参阅
为了回答您的问题,我认为将多维数组转换为Mat没有捷径。您应该循环遍历元素以将数据复制到Mat中。这就是为什么许多人使用一维数组来加快图像处理速度。“我试过
cv::Mat myMat(3号,cv\u 8U3C)
。但这是错误的”-哈?可能是因为这一行甚至没有包含任何对myValue
的引用?它应该如何以任何方式神奇地与myValue
关联?请不要说它只是拒绝编译,因为您使用了CV_8U3C
而不是CV_8UC3
。对不起,我的输入错误,它是myValue,不是myMat和CV_8UC3。我编辑的,嗯?现在两个对象的名称相互干扰,cv::Mat
的声明仍然没有以任何方式引用double
数组,它应该如何获取其值?在StackOverflow中,不允许两次发布同一问题@克里斯蒂安:请忘记它的值,如果需要,我可以将它声明为零矩阵。我想问的是如何声明多维opencv mat。是的,在问这个问题之前,我已经搜索了很多。从网络上我发现opencv中有一些函数,比如“cvSplit”或“CVMixChannel”,等等。所以我认为可以有其他函数/更快的方法来完成多维数组到cvMat之间的转换,并在这里提出了这个问题。无论如何,谢谢你的建议。