2016-02-26 2 views
0

J'essaie de lire une image et de recadrer une région rectangulaire à l'aide d'OpenCV. Cependant, l'image recadrée que je reçois semble être hors de proportion et pas la même taille que l'original. Y at-il un problème avec mon code? Ou est-ce que je fais quelque chose de stupide comme un zoom involontaire sur la fenêtre. Ran sur Ubuntu.Image recadrée OpenCV déformée

#include "opencv2/opencv.hpp" 
#include <stdio.h> 
#include <iostream> 
#include <stdlib.h> 


using namespace cv; 
using namespace std; 

int main() 
{ 

    // Read in an image 1 
    Mat Cloud1 = imread("/home/user1/Pictures/cloud1.jpeg"); 
    Rect rect(250,250,150,150); //some random values 
    Mat Template = Cloud1(rect); 
    namedWindow("FIGURE 1", CV_WINDOW_AUTOSIZE); 
    namedWindow("FIGURE 2", CV_WINDOW_AUTOSIZE); 
    imshow("FIGURE 1", Cloud1); 
    imshow("FIGURE 2", Template); 
    waitKey(0); 

    return 0; 
} 

enter image description here

Mise à jour: Passons je pense qu'il est un problème d'affichage parce que quand j'assombri le modèle Template = 1.0f * Template - 20, l'image originale a été modifiée correctement.

+1

Wierd ... Le code semble correct .. – Miki

+0

C'est peut-être dû à 'CV_WINDOW_AUTOSIZE', mais il ne devrait pas être, Mais j'ai expérimenté 'imshow' se comporter de façon inattendue, si gentiment enregistrer l'image à un endroit spécifié et examinez les résultats. – ZdaR

Répondre

0

Vous n'êtes pas un expert, mais vous ne faites pas que redimensionner de nouvelles limites?

Dans openCV, vous devez définir une région d'intérêt et créer une nouvelle image à partir du ROI.