Je voudrais obtenir la taille de l'image en python, comme je le fais avec c ++.
int w = src->width;
printf("%d", 'w');
Utilisez la fonction GetSize
du module cv
avec votre image en paramètre. Il retourne la largeur, la hauteur sous forme de tuple avec 2 éléments:
width, height = cv.GetSize(src)
Avec openCV et numpy, c’est aussi simple que cela:
import numpy as np
import cv2
img = cv2.imread('your_image.jpg',0)
height, width = img.shape[:2]
J'utilise numpy.size () pour faire la même chose:
import numpy as np
import cv2
image = cv2.imread('image.jpg')
height = np.size(image, 0)
width = np.size(image, 1)
Pour moi, le plus simple est de prendre toutes les valeurs renvoyées par image.shape:
height, width, channels = img.shape
si vous ne voulez pas avoir le nombre de canaux (utile pour déterminer si l'image est en bgr ou en niveaux de gris), supprimez simplement la valeur
height, width, _ = img.shape
Voici une méthode qui renvoie les dimensions de l'image:
from PIL import Image
import os
def get_image_dimensions(imagefile):
"""
Helper function that returns the image dimentions
:param: imagefile str (path to image)
:return dict (of the form: {width:<int>, height=<int>, size_bytes=<size_bytes>)
"""
# Inline import for PIL because it is not a common library
with Image.open(imagefile) as img:
# Calculate the width and hight of an image
width, height = img.size
# calculat ethe size in bytes
size_bytes = os.path.getsize(imagefile)
return dict(width=width, height=height, size_bytes=size_bytes)