unsigned char ** to opencv mat

时间:2012-11-06 16:40:08

标签: c++ image-processing opencv double-pointer

我差点儿,但我不太明白如何转换

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);

但是图像是黑色的,所以我现在需要找出是否存在其他任何东西。

很抱歉由于缺乏研究我正处于紧迫的截止日期,不是不是家庭作业,试图准备好向教授展示结果!

2 个答案:

答案 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);