我正在爲我的數字圖像處理類做家庭作業,我正在使用OpenCV與QT框架。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並改變了圖像大小。 –