我有一个位图阵列已经包含的图像的图像对象,然后我需要构造一个OPENCV对象来操作它。我看到的唯一构造函数是:OpenCV的,创建从位图
cv::imread(fileName...);
有什么其他方法可以从现有结构创建图像?
OpenCV 2.3
我有一个位图阵列已经包含的图像的图像对象,然后我需要构造一个OPENCV对象来操作它。我看到的唯一构造函数是:OpenCV的,创建从位图
cv::imread(fileName...);
有什么其他方法可以从现有结构创建图像?
OpenCV 2.3
得到的指针数据,图像通道,和尺寸,并使用了许多,许多建设者在那里的一个:
Mat image(width, height, CV_8UC3, ucharDataPtr);
这里,CV_8UC3是OpenCV的方式来索引数据类型。 8表示8位,U表示无符号 - 所以它是一个无符号字符 - 默认图像格式。 C3表示3个通道。如果你的位图有一个alpha通道,你会写CV_8UC4。如果它是灰色的,则CV_8UC1,依此类推。
重要:
此构造方法不复制数据。因此,请确保在使用Mat时保持原始位图对象处于活动状态。如果你想复制它,那么在构造函数中有一个“withCopy参数”。只需检查文档。
只是指向阵列上的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)
垫图像(宽度,高度,CV_8UC3,ucharDataPtr).clone(),如果你要复制的数据; – 2013-02-06 15:11:16