我有一个已经包含图像的位图数组,然后我需要构造一个 openCV 对象来操作它。我看到的唯一构造函数是:
cv::imread(fileName...);
从现有结构创建图像的其他方法有哪些?
OpenCV 2.3
最佳答案
获取指向数据、图像 channel 和维度的指针,并使用众多构造函数中的一个:
Mat image(width, height, CV_8UC3, ucharDataPtr);
这里,CV_8UC3 是 openCV 索引数据类型的方式。 8 表示 8 位,U 表示无符号 - 所以它是一个无符号字符 - 默认图像格式。 C3 表示 3 个 channel 。如果您的位图有 alpha channel ,您将编写 CV_8UC4。如果是灰色,则CV_8UC1,依此类推。
重要:
此构造函数不复制数据。因此,请确保在使用 Mat 时保持原始位图对象处于事件状态。如果你想复制它,构造函数中有一个“withCopy参数”。只需查看文档即可。
关于OpenCV,从位图创建图像对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8793363/