Je travaille actuellement à la lecture d'une image et à son affichage dans une fenêtre. J'ai réussi à le faire, mais lors de l'affichage de l'image, la fenêtre ne me permet de voir qu'une partie de l'image complète J'ai essayé d'enregistrer l'image après l'avoir chargée, et l'ensemble de l'image a été enregistrée. Je suis donc à peu près certain qu'il lit l'intégralité de l'image.
imgFile = cv.imread('1.jpg')
cv.imshow('dst_rt', imgFile)
cv.waitKey(0)
cv.destroyAllWindows()
Image:
Capture d'écran:
On dirait que l'image est trop grande et que la fenêtre ne correspond tout simplement pas à l'écran . Créez une fenêtre avec l'indicateur cv2.WINDOW_NORMAL
, cela la rendra évolutive. Ensuite, vous pouvez le redimensionner pour qu’il corresponde à votre écran:
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 OpenCVCV_WINDOW_KEEPRATIO
devrait faire de même, mais ce n'est pas le cas 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.
En openCV, lorsque 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 de voir l'image dans la fenêtre de votre choix, openCV vous encourage à utiliser la fenêtre nommée namedWindow documentationcv.NamedWindow(name, flags=CV_WINDOW_AUTOSIZE)
où chaque fenêtre est liée au conteneur d'images 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)