OpenCV,从位图创建图像对象
我有一个位图数组已经包含了一个图像,然后我需要构造一个openCV对象来操作它。我看到的唯一构造函数是:OpenCV,从位图创建图像对象,opencv,Opencv,我有一个位图数组已经包含了一个图像,然后我需要构造一个openCV对象来操作它。我看到的唯一构造函数是: cv::imread(fileName...); 从现有结构创建图像的其他方法有哪些 OpenCV 2.3只需将IplImage或cvMat指向阵列即可。cvMat的结构如下所示: CvMat // 2D array |-- int type; // elements type (uchar,short,int,float
cv::imread(fileName...);
从现有结构创建图像的其他方法有哪些
OpenCV 2.3只需将IplImage或cvMat指向阵列即可。cvMat的结构如下所示:
CvMat // 2D array
|-- int type; // elements type (uchar,short,int,float,double) and flags
|-- int step; // full row length in bytes
|-- int rows, cols; // dimensions
|-- int height, width; // alternative dimensions reference
|-- union data;
|-- uchar* ptr; // data pointer for an unsigned char matrix
|-- short* s; // data pointer for a short matrix
|-- int* i; // data pointer for an integer matrix
|-- float* fl; // data pointer for a float matrix
|-- double* db; // data pointer for a double matrix
(http://www.cs.iit.edu/~agam/cs512/lect notes/opencv intro/opencv intro.html)获取指向数据、图像通道和维度的指针,并使用众多构造函数中的一个:
Mat image(width, height, CV_8UC3, ucharDataPtr);
在这里,CV_8UC3是索引数据类型的openCV方法。8表示8位,U表示无符号-因此它是无符号字符-默认图像格式。C3表示3个通道。如果位图具有alpha通道,则将写入CV_8UC4。如果为灰色,则为CV_8UC1,依此类推
重要提示:
此构造函数不复制数据。因此,请确保在使用Mat时保持原始位图对象处于活动状态。如果要复制它,构造函数中有一个“withCopy参数”。只需检查文档。Mat image(宽度、高度、CV_8UC3、ucharDataPtr)。如果要复制数据,请克隆();