私は自分のデジタル画像処理クラスの宿題に取り組んでおり、QTフレームワークでOpenCVを使用しています。QWidgetは歪んだ角度のQImageを描画します
クラスImageDisplay
を作成しました。これはQWidget
クラスのサブクラスです。
OpenCVを使ってグレースケールイメージを操作し、Mat
オブジェクトからQImage
オブジェクトを作成しました。その後、私はQWidget::drawImage()
を使ってイメージを描画します。しかし時にはそれは歪んだ、角度のある画像を示します。
私は実験しており、画像の大きさと関係があることを発見しました。例えば
レンダリングされているが(飾りひもを使用して)321x391の寸法を変更した場合、それは次のように現れる:
これはするためのコードでありますpaintEvent
方法:
void ImageDisplay::paintEvent(QPaintEvent *){
QPainter painter(this);
Mat tmp;
/* The mat in the next line is a Mat object that contains the image data */
cvtColor(mat, tmp, CV_GRAY2BGR);
QImage image(tmp.data, tmp.cols, tmp.rows, QImage::Format_RGB888);
painter.drawImage(rect(), image);
}
は、誰もが問題とどのようにそれを修正することです何の手掛かりを持っていますか?
ありがとうございます!
?あなたはディメンションを変更したようですが、古いデータバッファー(古いディメンションを使用)を使用しています。あなたはあなたの_tilted_画像の下の黒い行を見てこれを見ることができます – Miki
ああ、いいえ。私はコードを使ってイメージのサイズを変更しませんでした。私はちょうどgimpを使用し、イメージのサイズを変更しました。 –