Как выполнить преобразование OpenCV Mat в массив?
Я новичок в С++
и OpenCV
. Я выполняю простую программу захвата видео с камеры и сохранение его в файл. Мне нужно, чтобы мои данные с Mat Image
записывались в массив (например, unsigned char Arrak
). Как мне сделать преобразование формата Mat Image
в массив unsigned char
?
Вот мой код:
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
cout << "Built with OpenCV " << CV_VERSION << endl;//версия OPENCV
Mat image;
Mat src;
VideoCapture capture;
capture.open(2);// открытие камеры
capture >> src;
bool isColor = (src.type() == CV_8UC3);
VideoWriter writer;
int codec = VideoWriter::fourcc('H', '2', '6', '4');
double fps = 25.0;
string filename = "live.avi";
Size sizeFrame(1920,1080);
writer.open(filename, codec, fps, sizeFrame, isColor);
cout << "Started writing video... " << endl;
for (int i = 0 ; i < 900 ; i ++)
{
capture >> image;
Mat xframe;
resize(image,xframe,sizeFrame);
writer.write(xframe);
// imshow("Sample", image);
// char c = (char)waitKey(1);
// if(c == 27) break;
}
cout << "Write complete !" << endl;
capture.release();
writer.release();
return 0;
}
Источник: Stack Overflow на русском