首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CV_CAP_PROP_FOURCC?

如何使用CV_CAP_PROP_FOURCC?
EN

Stack Overflow用户
提问于 2014-03-14 08:30:57
回答 2查看 13.5K关注 0票数 2

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

代码语言:javascript
复制
cvGetCaptureProperty(image, CV_CAP_PROP_FOURCC)

其中image是CvCapture结构的对象。此函数返回double。我确实将它转换为char*,这样我就可以打印出格式,但它不起作用。有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-14 08:58:58

获取double*并将其转换为:

代码语言:javascript
复制
double f = cvGetCaptureProperty(image, CV_CAP_PROP_FOURCC);
char* fourcc = (char*) (&f); // reinterpret_cast

但是,对于C++接口,this OpenCV highgui tutorial建议执行以下操作:

代码语言:javascript
复制
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};

当然,您可以使用cvGetCaptureProperty而不是get方法。

票数 6
EN

Stack Overflow用户

发布于 2015-08-19 14:35:21

您可以使用以下函数:

代码语言:javascript
复制
// http://mkonrad.net/2014/06/24/cvvideocamera-vs-native-ios-camera-apis.html
void fourCCStringFromCode(int code, char fourCC[5]) {
    for (int i = 0; i < 4; i++) {
        fourCC[3 - i] = code >> (i * 8);
    }
    fourCC[4] = '\0';
}

例如:

代码语言:javascript
复制
    double f = cvGetCaptureProperty(capture, CV_CAP_PROP_FOURCC);
    printf("fourcc=%d\n", f); // outputs fourcc=6
    char fourcc[5];
    fourCCStringFromCode((int)f, fourcc);
    printf("fourcc=%s\n", fourcc); // outputs fourcc=DIVX
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22393875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档