J'ai une image au format 6400 × 3200 alors que mon écran correspond à 1280 x 800. Par conséquent, l'image doit être redimensionnée pour l'affichage uniquement. J'utilise Python et OpenCV 2.4.9 . Selon OpenCV Documentation ,
Si vous avez besoin d'afficher une image plus grande que la résolution de l'écran, vous devez appeler namedWindow ("", WINDOW_NORMAL) avant imshow.
C’est ce que je suis en train de faire, mais l’image n’est pas ajustée à l’écran, seule une partie est affichée car elle est trop grande. J'ai aussi essayé avec cv2.resizeWindow, mais cela ne fait aucune différence.
import cv2
cv2.namedWindow("output", cv2.WINDOW_NORMAL) # Create window with freedom of dimensions
# cv2.resizeWindow("output", 400, 300) # Resize window to specified dimensions
im = cv2.imread("earth.jpg") # Read image
cv2.imshow("output", im) # Show image
cv2.waitKey(0) # Display the image infinitely until any keypress
Même si je m'attendais à une solution automatique (adaptation automatique à l'écran), le redimensionnement résout également le problème.
import cv2
cv2.namedWindow("output", cv2.WINDOW_NORMAL) # Create window with freedom of dimensions
im = cv2.imread("earth.jpg") # Read image
imS = cv2.resize(im, (960, 540)) # Resize image
cv2.imshow("output", imS) # Show image
cv2.waitKey(0) # Display the image infinitely until any keypress
Essaye ça:
image = cv2.imread("img/Demo.jpg")
image = cv2.resize(image,(240,240))
La image
est maintenant redimensionnée. L'afficher sera rendu en 240x240.
Dans opencv, cv.namedWindow () crée simplement un objet window tel que vous le déterminez, mais sans redimensionner l'image d'origine. Vous pouvez utiliser cv2.resize (img, résolution) pour résoudre le problème.
Voici ce qu’elle affiche, une image de résolution 740 * 411 .
image = cv2.imread("740*411.jpg")
cv2.imshow("image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Ici, il affiche une image de résolution 100 * 200 après redimensionnement. Rappelez-vous que le paramètre de résolution utilise la colonne en premier, puis la ligne.
image = cv2.imread("740*411.jpg")
image = cv2.resize(image, (200, 100))
cv2.imshow("image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()