2014-09-18 5 views
0

je le code OpenCV2 suivant:image OpenCV décalages rééchelonner mal

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)); 

qui, lorsqu'il est affiché dans un conteneur QT en utilisant

QImage qimg((uchar*)old.data, old.cols, old.rows,QImage::Format_RGB888); 
ui->ImgA->setPixmap(QPixmap::fromImage(qimg)); 

me donne ce résultat (ignorer la teinte verte légère sans rapport, que a été mon outil de capture d'écran étant lent ...):

Result of resizing using uncommented out opencv cv::resize

Quand je passe au redimensionnement commenté (aka 4x la taille), j'obtiens une belle photo du coucher du soleil avec des couleurs appropriées. Cela fonctionne aussi bien si je change de largeur et de hauteur. Y a-t-il quelque chose qui me manque dans mon code qui provoque un mauvais décalage à certaines tailles redimensionnées? (Notez le JPG d'origine est 5472 pixels par 3648 pixels)

Répondre

1

Essayez ceci:

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

Je l'ai posté un commentaire, mais maintenant je tester sur mon ordinateur et sans étape je reçois même image mal, donc je suis sûr que c'est la solution de votre problème.