我了解如何创建一个 opencv Mat 对象,假设给出了指向图像像素的指针以及其他一些辅助信息。例如:
int width = 100;
int height = 200;
unsigned char *pPixel = new unsigned char [width*height];
cv::Mat myMat(height,width, CV_8UC1,pPixel);
delete []nPixel;
我的下一个问题是:假设 myMat 已经作为一个空的 cv::Mat 对象存在,在这种情况下,我们如何将图像信息分配给空的 myMat 对象?这可能发生在以下函数中:
void create_mat(int width, int height, int band_num, unsigned char *pPixel, cv::Mat &obj)
{
// adjust obj based on width, height and pPixel
}
编辑:可能的解决方案:
void create_mat(int width, int height, int band_num, unsigned char *pPixel, cv::Mat &obj)
{
obj.data = pPixel;
obj.rows = height;
obj.cols = width;
// how to assign image data type?
}