2014-07-19 7 views
12

Desidero visualizzare un'immagine utilizzando opencv su Mac os X 13 '. La dimensione dell'immagine è 1920 × 1080. Quando eseguo questo codice, vedo solo una parte di un'immagine. Ho bisogno di adattare l'immagine allo schermo.Adattamento di un'immagine allo schermo utilizzando imshow opencv

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include<opencv2/core/core.hpp> 
#include<opencv2/highgui/highgui.hpp> 
#include "opencv2/opencv.hpp" 
#include<string.h> 
using namespace cv; 
using namespace std; 

int main() 
{ 
    Mat image=imread("/Users/rafikgouiaa/Qt/projects/MakeVideo/build-MakeVideo- Desktop_Qt_5_0_2_clang_64bit-Debug/im.jpg"); 
    namedWindow("Display frame",CV_WINDOW_AUTOSIZE); 
    imshow("Display frame", image); 
    waitKey(0); 
    return 0 
} 
+0

cv :: ridimensionare (..)? –

risposta

4

Passando CV_WINDOW_AUTOSIZE-namedWindow() farà le dimensioni della finestra di regolare automaticamente per adattare l'immagine visualizzata. E vedi che parte dell'immagine è probabilmente perché l'immagine è troppo grande per il tuo schermo.

Per risolvere il problema, è possibile ridimensionare l'immagine per ridurla. Come questo:

Mat image=imread("..."); 
resize(image, image, Size(image.cols/2, image.rows/2)); // to half size or even smaller 
namedWindow("Display frame",CV_WINDOW_AUTOSIZE); 
imshow("Display frame", image); 
+1

L'utilizzo di WINDOW_NORMAL non ha ridimensionato l'immagine per adattarla alla finestra o allo schermo. Ho dovuto ridimensionare l'immagine, come dice questa risposta. – redcurry

16

Se avete bisogno di mostrare un'immagine che è più grande della risoluzione dello schermo, è necessario chiamare

namedWindow("Display frame", WINDOW_NORMAL) 

prima della imshow.

per impostare le dimensioni della finestra desiderabile chiamata si prega di

cv::resizeWindow("Display frame", WIDTH, HEIGHT); 

Per maggiori dettagli vedi http://docs.opencv.org/modules/highgui/doc/user_interface.html#imshow

+2

Aggiungo che è fondamentale che il secondo argomento di namedWindow sia impostato su WINDOW_NORMAL (al contrario di WINDOW_AUTOSIZE). Altrimenti, la finestra non verrà ridimensionata. – tagoma

-1

c'è bisogno di mettere CV_WINDOW_OPENGL invece CV_WINDOW_AUTOSIZE

Problemi correlati