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 サイトの他の関連記事を参照してください。