我正在为我的数字图像处理类做家庭作业,我正在使用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并改变了图像大小。 –