gpt4 book ai didi

c++ - 将YUV420p QVideoFrame转换为灰度OpenCV垫

转载 作者:行者123 更新时间:2023-12-02 17:41:18 25 4
gpt4 key购买 nike

我创建了一个过滤器,扩展了QAbstractVideoFilterQVideoFilterRunnable,我已经覆盖了

QVideoFrame run(QVideoFrame* input, const QVideoSurfaceFormat &surfaceFormat, RunFlags flags)`

方法

问题在于 QVideoFrame格式为 Format_YUV420P且没有句柄。我需要将其转换为 CV_8UC1才能使用 OpenCV算法。

哪个是完成此任务的最佳方法?

最佳答案

首先,您需要创建一个带有APIcv::Mat,以便使用数据指针进行初始化,如下所示:

cv::Mat img = cv::Mat(rows, cols, CV_8UC3, input.data/*Change this to point the first element of array containing the YUV color info*/)

现在,由于 img是使用YUV颜色数据初始化的,因此您可以使用各种 cvtColor模式将YUV mat转换为其他格式,将其转换为灰度可以尝试:
cv::Mat gray;
cv::cvtColor(img, gray, cv::COLOR_YUV2GRAY_I420);

关于c++ - 将YUV420p QVideoFrame转换为灰度OpenCV垫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44517828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com