ホームページ >バックエンド開発 >C++ >cv::Mat を QImage に確実に変換するにはどうすればよいですか?

cv::Mat を QImage に確実に変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-20 02:36:09930ブラウズ

How Can I Reliably Convert a cv::Mat to a QImage?

OpenCV cv::Mat を QImage に変換する

OpenCV cv::Mat と Qt QImage は、保存および保存によく使用される 2 つのデータ構造です。画像の操作。これらの形式間の変換は一般的なタスクであり、これを実現するにはいくつかの方法があります。

Michal Kottman の解決策

質問で参照されている 1 つの解決策が提供されています。ミシェル・コットマン著。この方法には、cv::Mat データの QImage への直接割り当てが含まれます:

QImage imgIn= QImage((uchar*) img.data, img.cols, img.rows, img.step1(), QImage::Format_RGB888);

制限への対処

ただし、場合によっては、このアプローチでは、特定の画像に対して期待される結果。これに対処するために、改善されたソリューションが提案されています。

QImage imgIn= QImage((uchar*) img.data, img.cols, img.rows, img.step, QImage::Format_RGB888);

主な違い

このソリューションの決定的な違いは、関数呼び出しに img.step が含まれていることです。 。 Qt はこのパラメーターがなくてもエラーを発生させることはありませんが、このパラメーターがないと特定の画像が不適切に表示される可能性があります。

結論

img.step を組み込むことで、このソリューションは次のことを実現します。 cv::Mat を QImage に変換するためのより堅牢な方法で、あらゆる場合において一貫性のある正確な画像表現を保証します。

以上がcv::Mat を QImage に確実に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。