2012-07-15 37 views
26

Tôi đang cố gắng tìm hiểu JavaCV. Như bạn đã biết, việc thiếu tài liệu giáo dục về chủ đề này là một vấn đề rất lớn. Trong trang chủ JavCV, họ đã cung cấp nhiều ví dụ cho các ví dụ C++ trong cuốn sách "OpenCV CookBook". Nhưng trường hợp là, họ không phải là Java, họ đang ở SCALA !!!! Bây giờ tôi đã phát điên rồi! Tôi biết rất nhiều ví dụ là trên web, nhưng tôi muốn tìm hiểu nó từ đầu đến trước, sau đó chỉ tôi có thể làm điều đó đúng. "OpenCV CookBook" là một cuốn sách rất tốt nhưng nó là tất cả về OpenCV trong C++, không phải bất cứ điều gì về Java.Học JavaCV bằng Java thuần túy

Ai đó hãy giúp tôi tìm một nơi tốt hơn để học JavaCV. Cung cấp cho tôi bất cứ điều gì, URL, Sách, vv Nhưng nó phải được về việc học JavaCV trong 100% Java, không phải trong Scala, C++, C hoặc bất cứ ngôn ngữ nào khác! Hãy giúp tôi!

+12

Đây là trường hợp khi tôi bắt đầu học OpenCV bằng Python. Không có hướng dẫn nào trong Python, tất cả đều có trong C++. Nhưng tôi đã phải tìm hiểu nó bằng cách nào đó và bắt đầu đọc C + + cuốn sách và chuyển đổi nó để python bản thân mình. Và phải mất rất nhiều thời gian. Cuối cùng tôi đã đưa ra hướng dẫn của riêng tôi: opencvpython.blogspot.com, tập trung vào người mới bắt đầu. Vì vậy, đây là những gì tôi phải nói với bạn. Tự tìm hiểu nó từ các ví dụ rất cơ bản, và một khi đã sẵn sàng với mã đó, hãy viết hướng dẫn của riêng bạn cho những người học trong tương lai. Bằng cách nào đó một người phải chủ động. Hãy để nó được bạn !!! –

Trả lời

21

< cập nhật>

lần thay đổi - và do đó, OpenCV. Ngay bây giờ, một Java wrapper tinh khiết (không Android) đang phát triển nhanh, cho phép bất cứ ai sử dụng chức năng OpenCV trực tiếp trong ứng dụng Java desktop/

</cập nhật>

Bạn có thể tìm thấy một số hướng dẫn trong Java trong Thư mục mẫu OpenCV: samples/android.

Bạn cũng có thể tìm thêm một số thông tin here.

Bây giờ, tôi khá chắc chắn bạn sẽ nói bạn muốn Java, nhưng không phải Android :). Nhưng điều này đòi hỏi một lời giải thích.

Vì những lý do khác nhau - một trong những chính là hiệu quả và lần thứ hai một di đến các nền tảng nhúng, computer vision được thực hiện gần như hoàn toàn bằng C/C++. Đó là tiêu chuẩn thực tế. Mọi người đều sử dụng nó, với những lý do tốt và kết quả tốt. Có các bộ điều hợp khác nhau cho cơ sở mã C++, như Python và Java, nhưng chúng tồn tại để lấp đầy một số khoảng trống cụ thể: Python được sử dụng để tạo mẫu nhanh và Java để giao tiếp ngôn ngữ chính của Android. Nhưng trong mọi tình huống, việc phát triển thuật toán 'thực tế' được thực hiện với C/C++. Đây là lý do tại sao không ai quan tâm đến các hướng dẫn/sách/ví dụ bằng các ngôn ngữ khác.

Kết luận: Nếu bạn muốn tìm hiểu xử lý hình ảnh, hãy tìm hiểu C++ hoặc Python. Nếu bạn muốn xây dựng một số ứng dụng, hãy tìm hiểu giao diện java OpenCV từ tài liệu/hướng dẫn cho android. Nhưng đừng mong đợi sự linh hoạt hoặc kiểm soát hiệu suất.

note Được cập nhật

Có thêm hai điều cần chỉ định ở đây.

Đầu tiên, khi Android sử dụng bánh xe và Python chứng minh ngày càng phổ biến, nội dung có sẵn trong hai ngôn ngữ (và các ngôn ngữ khác) đang tăng lên đáng kể. Nhưng trong những năm tới, nhóm phát triển cốt lõi - và các tài liệu tốt nhất - sẽ nằm trong khu vực C++.

Cuối cùng nhưng không kém phần quan, bạn nên lưu ý rằng trong bất kỳ công việc hoặc lập trình khu vực, nếu bạn dính vào một ngôn ngữ, bạn đang chết.Các nguyên tắc quan trọng, và bạn sẽ có thể thực hiện chúng bằng nhiều ngôn ngữ, và bạn sẽ có thể đọc và hiểu từ nhiều nguồn khác nhau. Điều gì về một lập trình viên nói rằng ông không thể dịch mã giả thành Java? Nó hoàn toàn giống với các ngôn ngữ khác.

Bạn có thể đọc bài đăng trên blog tuyệt vời Don't call yourself a programmer để hiểu lý do bạn nên quên lập trình bằng một ngôn ngữ.

+0

Cảm ơn bạn đã trả lời, tôi thực sự đánh giá cao nó :) Dù sao, ít nhất, có cách nào để chuyển đổi scala sang java mà không cần học scala? Ý tôi là, công cụ trực tuyến hay gì đó? –

+0

@Yohan :) vui lòng đọc bài đăng cập nhật của tôi. Tôi hy vọng bạn có được ý tưởng. Bạn có thể tìm thấy một số công cụ trực tuyến, hoặc (có lẽ nhiều nhất) không, nhưng bạn nên hiểu rằng bạn có thể làm điều đó. – Sam

+0

Tôi không nói với tôi chỉ biết một ngôn ngữ. Tôi biết C#. Net và VB.Net, JavaFX, một số C++ và tất nhiên một số android. Nhưng điều đó không có nghĩa là một người phải học tất cả các ngôn ngữ có sẵn trên thế giới chỉ vì anh ta phải sử dụng một API duy nhất. Thay vào đó, tìm một cách khác để làm điều đó, trong trường hợp này là Xuggler API, là điều tốt nhất. –

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