2012-10-23 19 views
22

Chciałbym uzyskać rozmiar obrazu w python, jak to zrobić z C++.Rozmiar obrazu (Python, OpenCV)

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

co to '->' składnia? Nigdy wcześniej tego nie widziałem ... –

+0

Aby uzyskać dostęp do właściwości obiektu, jak w PHP? Jeśli tak, dlaczego po prostu nie używają operatora kropki ('.?)? –

+0

@ YatharthROCK W C++ 'a-> b' jest odpowiednikiem' (* a) .b' –

Odpowiedz

10

Użyj funkcji GetSize z modułu cv z obrazu jako parametru. Zwraca szerokość, wysokość, jak krotki z 2 elementów:

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

Ta funkcja nie istnieje w OpenCV 3. Może została usunięta jakiś czas temu? – polm23

64

Korzystanie OpenCV i NumPy jest to tak proste, jak to:

import numpy as np 
import cv2 

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

Myślę, że powinno to: 'height, width = img.shape [: 2]' – tidy

9

używam numpy.size(), aby zrobić to samo:

import numpy as np 
import cv2 

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

dla mnie najłatwiej jest do podjęcia wszelkich wartości zwracanych przez image.shape:

height, width, channels = img.shape 

jeśli nie chcą liczba kanałów (przydatne do ustalenia, czy obraz jest BGR lub skala szarości) tylko kropla wartość:

height, width, _ = img.shape