Matrix 尝试将cv::Mat数据复制到uchar中*

Matrix 尝试将cv::Mat数据复制到uchar中*,matrix,copy,opencv3.0,unsigned-char,Matrix,Copy,Opencv3.0,Unsigned Char,我试图使用C++的复制函数复制opencv垫对象(它的类型uchar *)的数据到一个无符号字符*:< /p> cv::Mat m = cv::imread (path, 0); uchar * ptr; std::copy (m.data, ptr, mask.size); 但是,我得到了26个关于复制函数的语法错误。你能帮我吗?谢谢你的帮助。谢谢。答案很简单: //cv::Mat m;//你的opencv垫 uchar*mPtr=新uchar[m.total()]; std::memc

我试图使用C++的复制函数复制opencv垫对象(它的类型uchar *)的数据到一个无符号字符*:< /p>
cv::Mat m = cv::imread (path, 0);

uchar * ptr;

std::copy (m.data, ptr, mask.size);
但是,我得到了26个关于复制函数的语法错误。你能帮我吗?谢谢你的帮助。谢谢。

答案很简单:

//cv::Mat m;//你的opencv垫
uchar*mPtr=新uchar[m.total()];
std::memcpy(mPtr,m.data,m.total());
对不起,这是个直截了当的问题。尽管我希望它也能帮助别人。

答案很简单:

//cv::Mat m;//你的opencv垫
uchar*mPtr=新uchar[m.total()];
std::memcpy(mPtr,m.data,m.total());

对不起,这是个直截了当的问题。不过,我也希望它能对其他人有所帮助。

您是否要将整个mat数据复制到一个指针上?你认为
mask.size
会给你什么?你检查过了吗?你把这里的很多事情都搞砸了。1) 未初始化指针2)
std::copy
中的参数错误。您是否打算改用
memcpy
?3) 什么是
掩码
?如果你要处理非连续图像,你真的应该用另一种方式。那么,你想做什么?为什么您需要一个
uchar*
?为什么需要将数据复制到一个
uchar
?Derman和Miki面具应该是“m”。而是分配了m.total()的内存。m、 大小返回具有宽度和高度的大小对象。所以当你说出拷贝的用法时,你是对的。我改用memcpy,所以现在一切都很好。非常感谢。是否尝试将整个mat数据复制到单个指针?你认为
mask.size
会给你什么?你检查过了吗?你把这里的很多事情都搞砸了。1) 未初始化指针2)
std::copy
中的参数错误。您是否打算改用
memcpy
?3) 什么是
掩码
?如果你要处理非连续图像,你真的应该用另一种方式。那么,你想做什么?为什么您需要一个
uchar*
?为什么需要将数据复制到一个
uchar
?Derman和Miki面具应该是“m”。而是分配了m.total()的内存。m、 大小返回具有宽度和高度的大小对象。所以当你说出拷贝的用法时,你是对的。我改用memcpy,所以现在一切都很好。非常感谢。警告:
m.total()
仅在矩阵类型为CV_8UC1,即单个8位(uchar)通道时才正确!否则,您将需要警告:
m.total()
仅在矩阵类型为CV_8UC1,即单个8位(uchar)通道时才正确!否则,您将需要