2012-10-23 22 views
22

Ich möchte die Bildgröße in Python bekommen, wie ich es mit C++ mache.Bildgröße (Python, OpenCV)

int w = src->width; 
printf("%d", 'w'); 
+0

Was ist das '->' Syntax? Nie zuvor gesehen ... –

+0

Für den Zugriff auf Eigenschaften eines Objekts wie in PHP? Wenn ja, warum benutzen sie nicht einfach den Punktoperator ('.')? –

+0

@YatharthROCK In C++ 'a-> b 'ist das Äquivalent von' (* a) .b' –

Antwort

10

die Funktion GetSize aus dem Modul cv mit Ihrem Bild als Parameter verwenden. Es gibt Breite, Höhe als Tupel mit zwei Elementen:

width, height = cv.GetSize(src) 
+1

Diese Funktion scheint in OpenCV 3 nicht zu existieren. Vielleicht wurde sie vor einiger Zeit entfernt? – polm23

64

Mit OpenCV und numpy es so einfach wie das ist:

import numpy as np 
import cv2 

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

Ich denke es sollte: 'height, width = img.shape [: 2]' – tidy

9

Ich benutze numpy.size(), um das Gleiche zu tun:

import numpy as np 
import cv2 

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

Für mich ist der einfachste Weg ist es, alle Werte von Bild.Form zurück zu nehmen:

height, width, channels = img.shape 

, wenn Sie die Anzahl der Kanäle (nützlich, um zu bestimmen, ob das Bild bgr oder Graustufen) nicht wollen, nur den Wert fallen:

height, width, _ = img.shape