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:
Capture d'écran:
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.
Cela peut vous aider
namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
imshow( "Display window", image ); // Show our image inside it.
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 documentationcv.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)