Nên lập trình OpenCV bằng ngôn ngữ nào?

OpenCV hiện tại hỗ trợ nhiều ngôn ngữ, mỗi ngôn ngữ có thế mạnh riêng, vậy thì tùy theo nhu cầu mà chọn ngôn ngữ cho phù hợp. Trên góc nhìn cá nhân có thể chưa chính xác, nếu thấy sai xin góp ý.

C++: Đây là ngôn ngữ chính, được ưa chuộng nhất vì nó nhanh, nhiều tùy chọn, có IDE là Visual Studio quá tốt. Người mới học sẽ khá bối rối với các thiết lập của nó, nhưng sau này các thiết lập đó rất hữu ích để tối ưu hóa sản phẩm

Python: Do ngôn ngữ này viết code ngắn gọn nhất, ít phải cài đặt, thiết lập nên Python được dùng để demo OpenCV nhiều nhất. Khi code bằng Python thì dễ dàng lập trình trên nhiều hệ điều hành.

Java: Cũng tương tự C++, tốc độ nhanh, đa nền tảng.

Android: Là tương lai của OpenCV vì tích hợp sẵn camera, tiện lợi, linh hoạt.

C#, VB.NET Có thư viện cross-platform là EmguCV hỗ trợ. Code tiện lợi, dễ dàng, các API của .NET rất tiện dụng cho lập trình viên. Tuy nhiên EmguCV đòi hỏi người dùng phải copy toàn bộ file *.dll của lib đi kèm với ứng dụng, làm cho ứng dụng rất nặng nề

Objective C: Thật sự là chưa code bao giờ nên không dám đưa ra ý kiến, nhưng nó dễ kiếm tiền và iPhone, iPad khá phổ biến, phần cứng tốt và OS ổn định

Như vậy thì tùy theo nhu cầu mà sử dụng ngôn ngữ cho phù hợp, tuy nhiên một khi đã nắm vững OpenCV thì ngôn ngữ nào cũng không phải là vấn đề. Bản thân tui đang sử dụng C++ để xử lý hình ảnh, sau đó chuyển kết quả cho C# hiển thị vì C# dễ thiết kế UI. Còn android thì có thể viết code và demo tính năng của chương trình cho khách hàng xem ngay lập tức.

Về tương lai sau này khi các máy tính nhúng như Rasperry PI phổ biến thì viết code rồi nhúng vào đó bán theo phần cứng sẽ dễ dàng hơn. Còn theo hướng phần mềm thì khá khó bán với các ứng dụng OpenCV.

Leave a Reply