可能重复:
将 IplImage IPL_DEPTH_32S 转换为 QImage Format_RGB32 的最快方法
我在使用 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 的奇数值宽度和高度的某种组合时,我都会得到一个奇怪的显示,如下所示...... 原始图像
所选投资回报率的图像
我需要做一些修改吗?windows 7显示有问题吗?正确显示时相同的投资回报率imshow()
......任何人帮助我......谢谢提前......
实际工作的代码
image = QImage((const unsigned char*)frame.data,frame.cols,
frame.rows,frame.step,QImage::Format_RGB888);