Python-OpenCV-imread-affichage de L'Image

je travaille actuellement sur la lecture d'une image et son affichage dans une fenêtre. Je l'ai fait avec succès, mais en affichant l'image, la fenêtre ne me permet de voir qu'une partie de la l'image complète. J'ai essayé de sauver l'image après l'avoir chargée, et elle a sauvé l'image entière. Je suis donc assez certain qu'il lit toute l'image.

imgFile = cv.imread('1.jpg')

cv.imshow('dst_rt', imgFile)
cv.waitKey(0)
cv.destroyAllWindows()

Image: image

Capture d'écran: screenshot

19
demandé sur Igonato 2013-10-10 05:23:18

3 réponses

on dirait que l'image est trop grande et que la fenêtre ne s'adapte tout simplement pas à l'écran. Créer de la fenêtre avec l' cv2.WINDOW_NORMAL drapeau, il sera évolutive. Ensuite, vous pouvez le redimensionner pour s'adapter à votre écran comme ceci:

from __future__ import division
import cv2


img = cv2.imread('1.jpg')

screen_res = 1280, 720
scale_width = screen_res[0] / img.shape[1]
scale_height = screen_res[1] / img.shape[0]
scale = min(scale_width, scale_height)
window_width = int(img.shape[1] * scale)
window_height = int(img.shape[0] * scale)

cv2.namedWindow('dst_rt', cv2.WINDOW_NORMAL)
cv2.resizeWindow('dst_rt', window_width, window_height)

cv2.imshow('dst_rt', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

selon la documentation D'OpenCVCV_WINDOW_KEEPRATIO flag devrait faire la même chose, mais il ne le fait pas et sa valeur n'est même pas présentée dans le module python.

24
répondu Igonato 2013-10-17 01:49:40

Cela peut vous aider

namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
imshow( "Display window", image );                   // Show our image inside it.
3
répondu Tom J Muthirenthi 2013-10-10 07:25:47

dans openCV chaque fois que vous essayez d'afficher une image surdimensionnée ou une image plus grande que votre résolution d'Affichage, vous obtenez l'affichage recadré.

Afin d'afficher l'image dans la fenêtre de votre choix openCV encourage à utiliser nommé fenêtre namedWindow documentation

cv.NamedWindow(name, flags=CV_WINDOW_AUTOSIZE) lorsque chaque fenêtre est liée au conteneur image par le nom arg, assurez-vous d'utiliser le même nom

par exemple:

import cv2
frame = cv2.imread('1.jpg')
cv2.NamedWindow("Display 1", flags=CV_WINDOW_AUTOSIZE)
cv2.resizeWindow("Display 1", 300, 300)
cv2.imshow("Display 1", frame)
0
répondu Mahesh Mac 2018-03-22 23:22:08