我有以下OpenCV2代码:
cv::Mat old = imread("some.JPG", CV_LOAD_IMAGE_COLOR);
cv::resize(old, old, cv::Size(342,228));
//cv::resize(old, old, cv::Size(342*2,228*2));
使用
显示在QT容器中时QImage qimg((uchar*)old.data, old.cols, old.rows,QImage::Format_RGB888);
ui->ImgA->setPixmap(QPixmap::fromImage(qimg));
给我这个结果(忽略不相关的轻微绿色,这是我的截图工具很慢......):
当我切换到注释掉的大小调整(也就是大小的4倍)时,我会得到一张漂亮的日落照片,颜色正确。如果我切换宽度和高度,它也可以正常工作。我的代码中是否存在某些因某些调整大小而导致错误偏移的原因? (注意原始JPG是5472像素乘3648像素)
答案 0 :(得分:1)
试试这个:
QImage qimg((uchar*)old.data, old.cols, old.rows,old.step,QImage::Format_RGB888);
我发布了它作为评论,但现在我在我的计算机上进行了测试,没有一步我得到了相同的错误图片,所以我确信它是你问题的解决方案。