我差点儿,但我不太明白如何转换
unsigned char ** to a cv::Mat
我知道cv :: Mat的.data部分是uchar *
我正在使用一个以...形式返回和图像的函数。
unsigned char ** output;
但我的其余代码使用cv :: Mat's。我没有我使用的lib的来源,所以不知道它在做什么。
修改 谢谢你的帮助,我已经做到了......
cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, *output);
imshow("this is a test",TempMat);
但是图像是黑色的,所以我现在需要找出是否存在其他任何东西。
很抱歉由于缺乏研究我正处于紧迫的截止日期,不是不是家庭作业,试图准备好向教授展示结果!
答案 0 :(得分:9)
您必须使用Mat constructor指向数据的指针:
// constructor for matrix headers pointing to user-allocated data
Mat(int _rows, int _cols, int _type, void* _data, size_t _step=AUTO_STEP);
Mat(Size _size, int _type, void* _data, size_t _step=AUTO_STEP);
您必须将void**
转换为void*
,然后再使用它。
答案 1 :(得分:1)
也许你应该删除{/ 1>}
*
就像这样:
cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, *output);