cv::Mat
предназначен для автоматического управления памятью изображений, но также может использоваться с внешними буферами. Для этого передайте указатель на внешний буфер конструктору Mat
.
Убедитесь, что размер буфера, размер и тип циновки (каналы, глубина и т. Д.) Соответствуют выводу, выходящему из VideoCapture.
Пример:
unsigned char *data; // Points to buffer of appropriate size.
cv::VideoCapture cap; // A valid capture
// This only allocates the Mat header with a reference to "data"
cv::Mat frame {
rows,
cols,
CV_8UC3, // image type, here 3-channel, 8 bits per channel, unsigned
data
};
cap >> frame; // Image data stored into buffer at "data"