2010-10-17 53 views
13

Tôi sắp bắt đầu một dự án xử lý hình ảnh trực quan và không có kinh nghiệm với Matlab, Aforge, OpenCV và đang tự hỏi liệu có ai có kinh nghiệm với các gói phần mềm khác nhau không.Matlab vs Aforge vs OpenCV

Tôi cũng tự hỏi rằng ba gói nào hiệu quả nhất mà tôi cho là OpenCV nhưng có ai có kinh nghiệm không?

Cảm ơn

Jamie.

Trả lời

13

Câu hỏi bạn cần đặt ra là điều quan trọng hơn - thời gian của bạn hoặc thời gian của máy tính. Nếu nhiệm vụ của bạn thực sự đơn giản, bạn có thể mã hóa nó trong MATLAB và nó hoạt động ngay lập tức. MATLAB là dễ dàng nhất cho phát triển - một ngôn ngữ kịch bản với quản lý bộ nhớ tích hợp, một mảng lớn các chức năng được cung cấp, và một giao diện tuyệt vời để hiển thị và thao tác dữ liệu trong khi gỡ lỗi.

Mặt khác, MATLAB ít nhất là một đơn đặt hàng có cường độ chậm hơn so với mã openCV được biên dịch cho nhiều tác vụ. Điều này đặc biệt đúng nếu bạn sử dụng các thư viện nguyên thủy hiệu năng intel.

Nếu bạn biết cách viết mã trong MATLAB, tôi khuyên bạn nên viết và gỡ lỗi các thuật toán của bạn bằng ngôn ngữ đó, sau đó chuyển chúng sang c/C++ với openCV cho tốc độ. Nếu chỉ có một vài hàm đơn giản mà bạn cần tăng tốc, bạn có thể gọi mã c từ MATLAB, nhưng thật khó để làm việc này ngay lần đầu tiên bạn thử nó, vì vậy bạn có thể nên viết lại hoàn thành mã hoàn toàn bằng c/C++

+0

Hey Marc Tôi hoàn toàn mới đối với cả openCV và MATLAB và xử lý hình ảnh nói chung. Tôi cần phải làm một cái gì đó trên theo dõi nhãn cầu bằng webcam. Bạn đề xuất món gì? Họ không có đủ tài liệu cho openCV? – Sohaib

2

Trước tiên, hãy giải thích về nhu cầu của dự án của bạn. Nó có tác động lớn nhất đối với lựa chọn, ngoài các yếu tố khác - kiến ​​thức lập trình chung của bạn (Nếu bạn chưa xử lý chấm điểm nhưng chỉ với C++, thì AForge không phải là một lựa chọn tốt).

Nói chung,

Cả AForge và OpenCV đã tích hợp sẵn trong giao diện để Net, và OpenCV cũng với C++, python, và nhiều hơn nữa. Matlab có thể hiệu quả hơn, nhưng nếu bạn không có kinh nghiệm với nó - bạn cũng nên tìm hiểu cú pháp của nó. Xem xét điều này.

Matlab có thể có nhiều chức năng lớn nhất, nhưng nó phức tạp hơn các dự án khác. Bản thân OpenCV và AForge có một số khác biệt - xem chúng được mô tả trong StackOverflow này question/ answers.

+0

Dự án liên quan đến việc lắp camera phía trước thuyền đi xuống kênh và phát hiện các thuyền và đồ vật khác. Rõ ràng vấn đề đầu tiên là xử lý nước chế biến trực quan. – Jamie

2

Tôi đã làm việc năm ngoái trong hai dự án tương tự với ô tô trên đường cao tốc. Afaik, Matlab cho phép xử lý chỉ một khung hình tại một thời điểm (chắc chắn bạn có thể xây dựng một thuật toán để tính toán luồng) nhưng bằng cách sử dụng Simulink, bạn có thể xử lý luồng trực tiếp.

Mặt khác, tôi thấy AForge thân thiện hơn và dễ sử dụng hơn vì bạn có thể dễ dàng điều chỉnh các thông số xử lý từ GUI (không quá nhanh/dễ) để thực hiện trong Matlab/simulink.

Tôi muốn dùng Aforge.Net. Nó cũng đủ nhanh nếu bạn lo lắng về tốc độ xử lý. (sử dụng 640x480)

2

Nếu bạn đang hỏi về việc sử dụng một trong các tính năng này.net, dễ dàng bạn có thể nhận được thông tin bằng cách này:

1-MATLAB được sử dụng chủ yếu trong mô phỏng các dự án không phải là dự án Nguyên mẫu kết thúc; số của tôi: 30;

2-aforge (như tôi đã sử dụng trong nhiều dự án) nếu bạn không cần quá trình vòng tròn như chụp ảnh hoặc nhận dạng thứ gì đó trong hình ảnh hoặc ... bạn sẽ thấy nó rất tốt, dễ sử dụng nhưng hữu ích cho các quy trình đơn lẻ; số của tôi: 50

3-opencv rất tốt về tốc độ và hữu ích cho các quy trình vòng tròn, ví dụ: bạn có thể chụp ảnh từ webcam và ngay lập tức làm phim hoạt hình mà không bị chậm trễ, nhưng không dễ sử dụng như aforge. Tôi thích nó anyway gây ra tốc độ của nó và các chức năng MANY nó cho chúng ta hầu hết mọi thứ chúng ta cần trong lập trình; số của tôi: 80

Dr.Taha - Tahasoft.net