Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何转换多维c++;数组转换为openCV形式?_C++_Arrays_Opencv_Multidimensional Array_Type Conversion - Fatal编程技术网

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之间的转换,并在这里提出了这个问题。无论如何,谢谢你的建议。