2013-05-29 40 views
7

Tôi đang sử dụng opencv 2 với webcam. Tôi có thể lấy luồng video và xử lý nó, nhưng tôi dường như không thể tìm ra cách để thay đổi kích thước cửa sổ hiển thị. Tôi có một số hình ảnh video xếp chồng lên nhau theo chiều ngang, nhưng kích thước hình ảnh rất nhỏ nên khó nhìn thấy mọi thứ.Cách đổi kích thước cửa sổ trong python opencv2

Mã của tôi là khá đơn giản, và dọc theo dòng này:

cv2.namedWindow("main") 

.... 

result = np.hstack((res2, foreground)) 
result = np.hstack((ff, result)) 

cv2.imshow("main", result) 
cv2.waitKey(20) 

Các opencv documentation trạng thái:

namedWindow 
flags – Flags of the window. Currently the only supported flag is CV_WINDOW_AUTOSIZE . If this is set, the window size is automatically adjusted to fit the displayed image (see imshow()), and you cannot change the window size manually. 

Nhưng qt backends dường như có cờ thêm. Tôi không có một phụ trợ qt. Có cách nào giúp tôi tăng kích thước hình ảnh để tôi có thể nhìn thấy chúng không?

Trả lời

10

Có, rất tiếc, bạn không thể thay đổi kích thước cửa sổ nameWindow theo cách thủ công mà không có chương trình phụ trợ Qt. lựa chọn của bạn:

  • sử dụng cv2.resize chức năng để thay đổi kích thước hình ảnh để kích thước mong muốn trước khi hiển thị hình ảnh
  • cài đặt OpenCV với sự hỗ trợ backend Qt và sử dụng cv2.namedWindow("main", CV_WINDOW_NORMAL)
+0

Bạn nói đúng. Tôi đã sử dụng thay đổi kích thước trên khung và nó hoạt động. – Bak

+0

cách bạn sử dụng thay đổi kích thước? – user391339

+0

cv2.resize (hình ảnh, (0, 0), fx = 0.5, fy = 0.5) sẽ đổi kích thước cả hai trục một nửa trong khi cv2.resize (hình ảnh, (100, 50)) sẽ đổi kích thước để có chiều rộng 100 và chiều cao 50 pixel . – uutsav

-2

Theo tài liệu, bạn cần tạo cửa sổ của mình với tự động xác thực.

cv2.namedWindow("main", cv2.WINDOW_AUTOSIZE) 

Cuộc gọi của bạn để imshow sau đó sẽ tự động thay đổi kích thước cửa sổ cho vừa với hình ảnh của bạn.

+0

Tùy chọn WINDOW_AUTOSIZE là như mặc định và thiết lập kích thước của cửa sổ với kích thước cố định thực tế của hình ảnh. –

2

Bạn có thể sử dụng WINDOW_NORMAL cờ khi gọi chức năng namedWindow như hình dưới đây. Điều này sẽ cho phép bạn thay đổi kích thước cửa sổ của bạn.

namedWindow("Image", WINDOW_NORMAL); 

Kiểm tra namedWindow chức năng ghi nhận here

8

Đơn giản chỉ cần viết

cv2.namedWindow("main", cv2.WINDOW_NORMAL) 

và sau đó tự thay đổi kích thước kích thước mong muốn của bạn

Các vấn đề liên quan