1

Ubuntu で QT を使用して OpenCV を実行していますが、QLabel を使用して画像を表示する際に問題が発生しました。コードを使用する場合:(「画像」はdcrawによって作成されたマットです):

Mat img_display;

cv::cvtColor(image,img_display,CV_BGR2RGB); 

imwrite("test.jpg",img_display);

QImage img=QImage("test.jpg");  // QImage assignment

QPixmap pixmap(QPixmap::fromImage(img));

widget.image_label->setPixmap(pixmap); 

画像はカラーで出力され、期待どおりです。

ただし、.jpg ファイルではなく 'img_display' を使用するように QImage の割り当てを置き換えると、画像表示は原点の右側から始まり、表示された画像の右下を三角形で上書きします。この三角形は、画像の LHS から失われたビットの半分のように見えます。私が使用しようとしている割り当てコードは次のとおりです。

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

画像は未加工の 18.2 MB の cr2 ファイルから取得され、dcraw によって作成されました。test.jpg は 3.1MB

フィードバックをいただければ幸いです。

4

0 に答える 0