2012-10-23 47 views
22

Tôi muốn có kích thước hình ảnh trong python, như tôi làm điều đó với C++.Kích thước hình ảnh (Python, OpenCV)

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

gì mà '->' cú pháp gì? Chưa từng thấy trước đây ... –

+0

Để truy cập các thuộc tính của đối tượng như trong PHP? Nếu vậy, tại sao họ không chỉ sử dụng toán tử dấu chấm ('.')? –

+0

@YatharthROCK Trong C++ 'a-> b' là tương đương với' (* a) .b' –

Trả lời

10

Sử dụng chức năng GetSize từ các module cv với hình ảnh của bạn như tham số. Nó trả về chiều rộng, chiều cao như một tuple với 2 yếu tố:

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

Chức năng này dường như không tồn tại trong OpenCV 3. Có thể nó đã bị xóa một lúc trước? – polm23

64

Sử dụng OpenCV và NumPy nó là dễ dàng như thế này:

import numpy as np 
import cv2 

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

Tôi nghĩ rằng nó nên: 'chiều cao, chiều rộng = img.shape [: 2]' – tidy

9

tôi sử dụng numpy.size() để làm như vậy:

import numpy as np 
import cv2 

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

Đối với tôi, cách dễ nhất là đưa tất cả các giá trị được trả về bởi image.shape:

height, width, channels = img.shape 
.210

nếu bạn không muốn số lượng các kênh truyền hình (hữu dụng để xác định xem các hình ảnh là BGR hoặc màu xám) chỉ cần thả giá trị:

height, width, _ = img.shape 
Các vấn đề liên quan