如何使用 CV_CAP_PROP_FOURCC?

Cro*_*oCo 2 c c++ opencv

这看起来很简单,但我无法让它工作。我想通过使用打印出图像的格式

cvGetCaptureProperty(image, CV_CAP_PROP_FOURCC)
Run Code Online (Sandbox Code Playgroud)

哪里image是 CvCapture 结构的对象。此函数返回double. 我确实将它转换为 char* 以便我可以打印出格式,但它没有用。有什么建议?

cha*_*pjc 6

获取double*并转换它:

double f = cvGetCaptureProperty(image, CV_CAP_PROP_FOURCC);
char* fourcc = (char*) (&f); // reinterpret_cast
Run Code Online (Sandbox Code Playgroud)

但是,这个 OpenCV highgui 教程建议使用 C++ 接口进行以下操作:

int ex = static_cast<int>(inputVideo.get(CV_CAP_PROP_FOURCC));

// Transform from int to char via Bitwise operators
char EXT[] = {(char)(ex & 0XFF),(char)((ex & 0XFF00) >> 8),(char)((ex & 0XFF0000) >> 16),(char)((ex & 0XFF000000) >> 24),0};
Run Code Online (Sandbox Code Playgroud)

当然get,您可以使用cvGetCaptureProperty.