2010-08-17 33 views
19

Là một nhà phát triển thực tế, tôi muốn tạo một thuật toán tốt cho nhiệm vụ cụ thể của tôi, được xây dựng từ các khối, như 'khai thác ranh giới', hoặc 'hiệu chỉnh gamma' và vân vân, nhưng tôi không muốn thực hiện bánh xe, làm tất cả những thứ đó, vì vậy tôi đi lang thang - nếu có bất kỳ thư viện CV mạnh mẽ nào, như OpenCV của C++?Thư viện tầm nhìn máy tính java thuần túy mã nguồn mở tốt nhất là gì?

Nói "tốt nhất", ý tôi là thư viện có thuộc tính sau:

  • lô của các thuật toán khác nhau thực hiện
  • Khả năng mở rộng - Tôi có thể tạo ra công cụ mới trong điều khoản của thư viện
  • hiệu suất cao
  • An toàn chủ đề
+2

Bạn có thể muốn giải thích chính xác những gì "tốt nhất" có ý nghĩa với bạn. –

+0

Xin cảm ơn, tôi sẽ thêm mô tả như vậy –

Trả lời

11

Shaman, Tôi đã tìm kiếm một thời gian dài cho một thư viện xử lý hình ảnh có thể so sánh với opencv trong Java. Đối với số lượng công việc tự động opencv thực hiện không có gì mà đến gần nó cho các ứng dụng loại máy tiên tiến tầm nhìn.

Về xử lý hình ảnh mặc dù imagej có một số lượng lớn các thuật toán và plugin được triển khai trước. Tôi sử dụng thư viện này tất cả các thời gian để tiền xử lý những thứ tôi cần để gửi vào opencvs máy tiện ích tầm nhìn. Đây cũng là nguồn mở với các cách dễ dàng để thêm các tính năng bổ sung thông qua plugin hoặc thao tác trực tiếp vì vậy tôi nghĩ rằng nó có thể đáp ứng hầu hết các yêu cầu của bạn.

30

Bạn có thể quan tâm đến một thư viện Java mã nguồn mở computer vision tinh khiết tôi đã phát triển, BoofCV. BoofCV hỗ trợ nhiều hoạt động xử lý ảnh phổ biến, phát hiện tính năng nâng cao, denet denetising, hiệu chỉnh máy ảnh, tầm nhìn stereo và cấu trúc từ chuyển động. Nó cũng rất nhanh. Hiện tại, việc triển khai SURF nhanh nhất từ ​​bất kỳ thư viện nguồn mở nào, bao gồm cả thư viện C/C++. Tốc độ khôn ngoan, nó rất cạnh tranh với OpenCV cho các thuật toán tầm nhìn tầm trung đến cao. OpenCV là tất nhiên nhanh hơn cho xử lý hình ảnh ở mức độ thấp.

Website: http://boofcv.org

OpenCV vs BoofCV: http://boofcv.org/index.php?title=Performance:OpenCV:BoofCV

Performance SURF học: http://boofcv.org/index.php?title=Performance:SURF

Ok đủ đánh dấu. Hi vọng mọi ngươi thich no!

  • Phần lớn mã đã có sẵn, chỉ thiếu một vài thành phần.
+2

+1 Điều này rất thú vị. Tôi tự hỏi nếu nó có templateMatching() từ openCV. – KJW

+0

Tôi không biết bạn đã thử nghiệm hiệu suất như thế nào nhưng có gì đó không tăng lên.Tôi khá thích Java và C#, nhưng tất cả đều quá quen thuộc với một số điểm yếu về hiệu năng của họ để xử lý dữ liệu. Cả Java và C# đều có điểm yếu hiệu năng vốn có trong phân tích mảng vì ** mỗi truy cập mảng đơn lẻ phải được bọc trong một kiểm tra trên các giới hạn mảng để đáp ứng các đảm bảo của ngôn ngữ. Đối với bất kỳ vòng lặp chặt chẽ trên dữ liệu mảng (chẳng hạn như một hình ảnh) chi phí này trở nên khá đáng kể. –

+2

mã nguồn có sẵn. chạy nó cho mình, tôi đã có xác nhận khác kết quả SURF của tôi. Về cơ bản bạn đang giả định rằng cả hai bộ là mã tương đương, mà chúng không phải là ... Bạn thấy các vấn đề bạn đang nói về mảng hoạt động cấp thấp và các thư viện C/C++ thống trị điều đó. –

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