C ++ WinApi OpenCV网络摄像头 - 如何从Mat框架中获取并保存数组中的所有像素值以及如何在以后显示它

时间:2018-05-28 20:29:20

标签: c++ opencv winapi frame pixel

我知道它很长的标题,但我有很多问题 这是我的完整代码:https://pastebin.com/GyGiFGNb
但我对这部分有更多疑问:

DWORD WINAPI Thread_no_1(LPVOID lpParam){
//int data = 0;
//hwnd = *((HWND*)lpParam);
VideoCapture cap(0); // open the default camera
if (!cap.isOpened()) // check if we succeeded
    return -1;
namedWindow("video", 1);

//|| while data
//for (;;)
do
{
    Mat frame;
    cap >> frame; // get a new frame from camera
    imshow("video", frame);
    if (waitKey(30) >= 0) break;
} while (przelacznik == 1);
cap.release();}

我正在尝试获取帧像素值以将它们保存到数组(unsigned char类型数组)中,然后压缩图像(转换为jpg)。
我的问题是:

  1. 如何获取图片大小以了解应该是多大的数组? (3 *宽度,因为每个像素有3个值?)
  2. 如何从Mat帧获取并保存每个像素值到数组? (我发现了一些Python循环而不是C ++)
  3. 我是否应该在该主题中完成所有这些工作,或者我会在主程序中做得更好但是如何将框架发送到外面?
  4. 我可以在窗口中显示保存在数组中的图片吗?
  5. 什么库可以帮我压缩以这种方式保存的图像?
  6. PS。怎么把我的opencv相机窗口放到我的主窗口?

0 个答案:

没有答案