Qtで画像を表示する際に奇妙な問題に直面しています...OpenCVを使用してビデオフレームを読み取り、BGRからRGBに変換します。
video >> frameOrg;
cvtColor(frameOrg,frameOrg,CV_BGR2RGB);
次に、トリミングスタイルを使用して画像のROIを選択します。
frame = frameOrg(roi);
選択したROIをシグナル/スロット経由でウィジェットに送信paintEvent()
して表示します。
image = QImage((const unsigned char*)frame.data,frame.cols,
frame.rows,QImage::Format_RGB888);
QRectF target(0.0,0.0,image.width(),image.height());
QRectF source(0.0,0.0,image.width(),image.height());
QPainter painter(this);
painter.drawImage(target,image,source);
しかし、ROIの奇妙な値の幅と高さの組み合わせを選択すると、次のような奇妙な表示が表示されます...元の 画像
選択したROIの画像
いくつかの変更を行う必要がありますか?Windows 7の表示に問題がありますか?ディスプレイで正しく表示されたときの同じROI imshow()
...誰かが私を助けてくれます..事前に感謝します...
動作する実際のコード
image = QImage((const unsigned char*)frame.data,frame.cols,
frame.rows,frame.step,QImage::Format_RGB888);