2013-05-29 17 views
7

Sto usando opencv 2 con una webcam. Posso ottenere il flusso video ed elaborarlo, ma non riesco a capire un modo per ridimensionare la finestra di visualizzazione. Ho alcune immagini video impilate orizzontalmente, ma la dimensione dell'immagine è molto piccola che è difficile vedere le cose.Come ridimensionare la finestra in opencv2 python

Il mio codice è abbastanza semplice, e lungo le linee di questo:

cv2.namedWindow("main") 

.... 

result = np.hstack((res2, foreground)) 
result = np.hstack((ff, result)) 

cv2.imshow("main", result) 
cv2.waitKey(20) 

I opencv documentation Uniti:

namedWindow 
flags – Flags of the window. Currently the only supported flag is CV_WINDOW_AUTOSIZE . If this is set, the window size is automatically adjusted to fit the displayed image (see imshow()), and you cannot change the window size manually. 

Ma qt backend pare avere flag extra. Non ho un backend qt. C'è un modo per me di aumentare la dimensione delle immagini in modo che io possa vederle?

risposta

10

Sì, sfortunatamente non è possibile ridimensionare manualmente una finestra nameWindow senza Qt backend. Le opzioni:

  • uso cv2.resize funzione per ridimensionare l'immagine alla dimensione desiderata prima di visualizzare l'immagine
  • installare OpenCV con il supporto back-end Qt e utilizzare cv2.namedWindow("main", CV_WINDOW_NORMAL)
+0

Hai ragione. Ho usato il ridimensionamento sul telaio e ha funzionato. – Bak

+0

come hai usato il ridimensionamento? – user391339

+0

cv2.resize (immagine, (0, 0), fx = 0,5, fy = 0,5) ridimensionerà entrambi gli assi a metà mentre cv2.resize (immagine, (100, 50)) ridimensionerà per avere larghezza 100 e altezza 50 pixel . – uutsav

-2

Come per i documenti, è necessario creare la finestra con autosize true.

cv2.namedWindow("main", cv2.WINDOW_AUTOSIZE) 

La chiamata a imshow ridimensionerà automaticamente la finestra per adattarla all'immagine.

+0

L'opzione WINDOW_AUTOSIZE è di default e imposta le dimensioni del finestra alla dimensione fissa effettiva dell'immagine. –

2

È possibile utilizzare il flag WINDOW_NORMAL quando si chiama la funzione namedWindow come mostrato di seguito. Questo ti permetterà di ridimensionare la tua finestra.

namedWindow("Image", WINDOW_NORMAL); 

Controllare la funzione namedWindow documentato here

8

Semplicemente scrivere

cv2.namedWindow("main", cv2.WINDOW_NORMAL) 

e poi manualmente ridimensionarla alla dimensione desiderata

Problemi correlati