0

IDS uEye ドライバーから rawchar*バッファーとして画像データを取得する画像処理アプリケーションを開発しています。この画像をユーザーに表示する必要があります。(私がQtを理解している限り、QLabelこの目的にはクラスを使用する必要があります)。char*また、バッファを直接変更するのが最も速いと思われる画像処理アルゴリズムについても説明する必要があります。

このアプローチでかなりの数のコード サンプルを見てきました。

label.setPixmap(QPixmap::fromImage(image));

whereimageはバッファQImageから構築されたです。char*

ただし、uEye デモ アプリケーションのソースで次のコードを見つけました。

void PaintLabel::paintEvent(QPaintEvent *ev)
{
  //...
  QPainter painter(this);
  painter.drawImage(rectangle, image);
  painter.end();
}

wherePaintLabelは のサブクラスであり、QLabelをペイントする場所を示しています。rectangleQRectFimage

時間測定を行ったところ、2 番目のアプローチは約 1.8 倍高速であることが判明しました (約 9 ミリ秒対 16 ミリ秒)。

だから、私の質問は次のとおりです。ビットマップをさらに高速に表示する他の方法はありますchar*か?できるだけ高速に? これは 1 つの同じバッファーであることに注意してください。変化しているのはその内容だけです。そのため、フレームごとにすべてを最初から再構築する必要はありません。更新するだけです。

4

0 に答える 0