opencv图像重新缩放错误的偏移量

时间:2014-09-18 04:20:39

标签: c++ qt opencv

我有以下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));

给我这个结果(忽略不相关的轻微绿色,这是我的截图工具很慢......):

Result of resizing using uncommented out opencv cv::resize

当我切换到注释掉的大小调整(也就是大小的4倍)时,我会得到一张漂亮的日落照片,颜色正确。如果我切换宽度和高度,它也可以正常工作。我的代码中是否存在某些因某些调整大小而导致错误偏移的原因? (注意原始JPG是5472像素乘3648像素)

1 个答案:

答案 0 :(得分:1)

试试这个:

QImage qimg((uchar*)old.data, old.cols, old.rows,old.step,QImage::Format_RGB888);

我发布了它作为评论,但现在我在我的计算机上进行了测试,没有一步我得到了相同的错误图片,所以我确信它是你问题的解决方案。