gpt4 book ai didi

c++ - 如何将QImage转换为opencv Mat

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:05:04 25 4
gpt4 key购买 nike

我在互联网上搜索过,但找不到将 QImage(或 QPixmap)转换为 OpenCV Mat 的方法。我该怎么做?

感谢任何帮助。

最佳答案

如果 QImage 仍然存在,并且您只需要对其执行快速操作,那么您可以使用 QImage 内存构造一个 cv::Mat:

cv::Mat mat(image.height(), image.width(), CV_8UC3, (cv::Scalar*)image.scanLine(0));

这里假设 QImage 是 3 channel ,即 RGB888。

如果 QImage 消失,那么您需要复制数据,参见 Qimage to cv::Mat convertion strange behaviour .

如果 QImage 是 Format_ARGB32_Premultiplied(首选格式),那么您需要将每个像素转换为 OpenCV 的 BGR 布局。 cv::cvtcolor() 函数在最新版本中可以将 ARGB 转换为 RGB。
或者你可以使用 QImage::convertToFormat()在复制数据之前转换为 RGB。

关于c++ - 如何将QImage转换为opencv Mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11886123/

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