2011-07-25 35 views
12

Tôi có thể sử dụng OpenCV để tạo GUI có chứa các nút, hộp danh sách, ... v.v ... không?OpenCV và tạo GUI

Cảm ơn.

+1

Đây là giới hạn bực bội của OpenCV. highGUI là gần như mọi thứ bạn cần cho gui, nhưng không hoàn toàn. Xem câu hỏi SO liên quan của tôi: http://stackoverflow.com/q/5874305/200688 – AndyL

Trả lời

13

OpenCV có highgui tích hợp sẵn để tạo GUI.

Bạn có thể tìm thấy online tutorials để giúp bạn bắt đầu.

Lưu ý rằng đây không phải là thư viện GUI mở rộng. Bạn chỉ có thể thực hiện các công cụ cơ bản như mở cửa sổ, vẽ các điểm, các đường chống răng cưa, hình chữ nhật và văn bản. Có một thanh trượt có thể được sử dụng làm nút bật-tắt. Nếu bạn cần nhiều hơn thế, bạn có thể

  • build thứ tự (ví dụ vẽ một hình chữ nhật với các văn bản để làm cho nút riêng của bạn), hoặc
  • sử dụng thư viện khác như Qt mà cung cấp nhiều widget (nút , menu, danh sách, hộp thoại…)

Chúc bạn may mắn nếu bạn tham gia chương trình đầu tiên!

+0

Cảm ơn bạn đã trả lời. Tôi biết về 'Highgui' và tìm kiếm các ví dụ, nhưng không thể tìm thấy những gì tôi hỏi. – Simplicity

+0

Tôi vừa thêm chi tiết… – Simon

+3

HighGUI rất hạn chế và ** không được ** sử dụng để xây dựng GUI. Mục đích chính của nó là hiển thị hình ảnh/khung hình video, và nếu bạn cần bất cứ điều gì phức tạp hơn một chút so với bạn sẽ cần phải tìm một thư viện của bên thứ 3 cho điều đó (Qt, wxWidgets, ...). – karlphillip

4

Cùng với các chức năng highgui mà Simon đã chỉ ra, những người khác đã sử dụng OpenCV in conjunction với Qt. Có thể dịch các khung máy ảnh thành hình ảnh trên tiện ích con QLabel và cập nhật hình ảnh trên nhãn định kỳ.

8

Trong Learning OpenCV, tiêu đề sau được đề cập trong trang 101: Không có nút.

Và, đây là một số những gì được đề cập dưới danh hiệu này:

Thật không may, HighGUI không cung cấp bất kỳ hỗ trợ rõ ràng cho các nút. Do đó, thực tế phổ biến là , trong số những đặc biệt lười biếng, để sử dụng các thanh trượt chỉ với hai vị trí . Một tùy chọn khác xuất hiện trong các mẫu OpenCV trong…/opencv/ mẫu/c/là sử dụng phím tắt thay vì nút (xem, ví dụ: bản demo fl oodfi ll trong gói mã nguồn OpenCV). *

3

Trên cửa sổ, bạn có thể sử dụng cvGetWindowHandle để lấy tay cầm cửa sổ (HWND). Với xử lý đó bạn có thể gọi CreateWindow từ WinAPI và đặt các điều khiển WinAPI trên cửa sổ đó.

Nhưng bạn cũng sẽ cần phải ghi đè hoặc móc WindowProc do OpenCV đặt cho cửa sổ đó. Hooking và ghi đè được giải thích tại đây Multiple WndProc functions in Win32