web-dev-qa-db-de.com

Bildgröße (Python, OpenCV)

Ich möchte die Bildgröße in Python erhalten, wie ich es mit C++ mache.

int w = src->width;
printf("%d", 'w');
27
Andrea Diaz

Verwenden Sie die Funktion GetSize aus dem Modul cv mit Ihrem Bild als Parameter. Es gibt Breite und Höhe als Tupel mit 2 Elementen zurück:

width, height = cv.GetSize(src)
13
halex

Mit openCV und numpy geht das so einfach:

import numpy as np
import cv2

img = cv2.imread('your_image.jpg',0)
height, width = img.shape[:2]
83
cowhi

Ich verwende numpy.size (), um dasselbe zu tun:

import numpy as np
import cv2

image = cv2.imread('image.jpg')
height = np.size(image, 0)
width = np.size(image, 1)
13
Rodrigo Lara

Für mich ist der einfachste Weg, alle von image.shape zurückgegebenen Werte zu übernehmen:

height, width, channels = img.shape

wenn Sie nicht die Anzahl der Kanäle wünschen (nützlich, um zu bestimmen, ob das Bild Bgr oder Graustufen ist), löschen Sie einfach den Wert:

height, width, _ = img.shape
11
Stein

Hier ist eine Methode, die die Bildabmessungen zurückgibt:

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)
0
Roei Bahumi