2009-04-14 99 views
41

Tôi chỉ tìm hiểu về tầm nhìn máy tính và C#. Dường như hai thư viện xử lý hình ảnh nổi bật là OpenCVAForge. Một số khác biệt của hai là gì?Sự khác biệt giữa AForge và OpenCV

Tôi đang tạo trình chỉnh sửa hình ảnh cơ bản trong C# và trong khi nghiên cứu tôi đã xem các bài viết trên cả hai. Nhưng tôi thực sự không biết tại sao tôi lại chọn cái kia. Tôi muốn cuối cùng cải thiện ứng dụng để bao gồm các chức năng nâng cao hơn.

Cảm ơn.

Trả lời

14

Tôi đang sử dụng OpenCV cho một dự án ở trường ngay bây giờ và tôi đã duyệt tài liệu về AForge và tính năng của chúng dường như khác nhau. AForge có rất nhiều bộ lọc và có lẽ là tuyệt vời cho các biến đổi và thao tác hình ảnh khác nhau. Nhưng có vẻ như thiếu một chút ở các khu vực khác. Tôi không thể tìm thấy bất kỳ hoạt động ma trận mà là một sự thất vọng vì nó rất hữu ích trong tầm nhìn máy tính. Dự án hiện tại của chúng tôi (tái tạo đám mây điểm 3D từ một chuỗi hình ảnh), theo như tôi thấy từ các tài liệu, không thể làm gì với AForge một mình.

Kết hợp AForge với thư viện đại số tuyến tính tốt và bạn có thể có thứ gì đó thực sự hữu ích.

Đối với OpenCV, nó có một bộ tính năng phong phú nhưng hơi phức tạp khi lập trình.

3

Nếu bạn muốn cải thiện ứng dụng của mình với nhiều chức năng nâng cao hơn như bạn đã nói, tôi muốn dùng OpenCV- tuy nhiên, một phần thành công của bạn phụ thuộc vào thực tế là cổng C# được cập nhật tích cực. không có nhiều rắc rối khi xem xét ba cổng. Tôi nghĩ rằng EmguCV có vẻ là một trong những điều tốt nhất hiện nay về mặt cập nhật, nhưng khi tôi nhìn vào nó, thiếu tài liệu (nhưng bạn có thể dịch mã C++ thành C# với một số kiến ​​thức C++). AForge có vẻ dễ dàng hơn nhiều đối với tôi và đó là những gì tôi đang sử dụng ngay bây giờ. OpenCV cũng có hỗ trợ cho các tệp haarcascade.xml bạn có thể sử dụng bao gồm phát hiện khuôn mặt. Vì vậy, đối với sự lựa chọn cuối cùng: cả hai sẽ phù hợp với bạn tốt, OpenCV được sử dụng rộng rãi hơn/hỗ trợ (mặc dù hầu hết người dùng cơ bản là C + +), AForge là dễ dàng hơn. Tất cả đi xuống đến những gì bạn muốn làm.

+3

[Accord] (http://accord-net.origo.ethz.ch/), một khuôn khổ mở rộng AForge, hỗ trợ các tệp xếp tầng XML Haar. Nó lấp đầy nhiều khoảng trống trong AForge, vì vậy bạn nên sử dụng cả hai. – smola

+1

@smmv: Accord dường như đã chuyển đến địa chỉ sau: http://code.google.com/p/accord/ – Sabuncu

40

Vâng, tại sao không sử dụng cả hai;) ??

Tôi đang sử dụng (theo nghĩa đen trong C# ... lol) EMGUCV.NET (mà là một OpenCV C# wrapper) và AFORGE.NET cùng một lúc:

AFORGE.NET cộng "Image Processing Lab" của nó có ý nghĩa nhiều cho các tùy chọn lọc (phát hiện cạnh, ngưỡng, vv) và giảm bớt các chức năng xem.

OpenCV cung cấp tất cả các phần còn lại như SIFT/SURF và các quy trình xử lý hình ảnh phức tạp hơn khác.

Đó là lý do tại sao bạn sử dụng NET: chỉ cần mang tất cả các thành phần bạn cần phải cùng nhau trong một ứng dụng :)

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