Tôi đã phát triển một chương trình C++ sử dụng OpenCV. Bây giờ tôi muốn phát triển một ứng dụng dựa trên biểu mẫu cửa sổ trong C#. Vì C# chỉ có thể xử lý mã được quản lý nên gần như không thể chạy OpenCV trực tiếp trên ứng dụng C#. Tôi đã tìm kiếm các cách khác nhau để tạo ứng dụng C# sử dụng OpenCV, một trong số đó là EmguCV và phương pháp khác mà tôi quan tâm nhiều hơn là nhập tệp C++ .dll trong ứng dụng C# và gọi các hàm không được quản lý theo cách này.gọi mã opencv C++ trong ứng dụng C#
Tôi bắt đầu bằng cách tạo các hàm đơn giản trong C++ và tôi có thể sử dụng cout
và cin
trong ứng dụng C# của mình bằng cách nhập dll. vấn đề này được đưa ra khi tôi cố gắng để bao gồm các tập tin header OpenCV trong ứng dụng C++ của tôi và khi tôi biên soạn tôi nhận được lỗi này
lỗi LNK1104: không thể mở tập tin 'tbb_debug.lib'
Một số ai đã thực hiện điều này trước đây nhưng tôi không thể tìm ra cách ông giao diện c + + với C# trong Displaying webcam feed in cv::Mat format in a picturebox
Câu hỏi là tôi có chức năng nhận trong biến cv :: Mat và thực hiện xử lý hình ảnh trên đó và trả về ma trận đã xử lý. tôi muốn sử dụng hàm đó được viết bằng C++ trong ứng dụng C# của tôi. nhưng vấn đề là tôi không thể tạo dll khi tôi đưa thư viện OpenCV vào C++.
Vì vậy, vui lòng không đề nghị tôi sử dụng EmguCV hoặc bất kỳ trình bao bọc .NET nào khác cho OpenCV.
tôi đang sử dụng Visual Studio 2010 cho Dự án của mình.
Câu hỏi là gì? Bạn đã đề cập, rằng bạn có thể tạo một DLL và truy cập nó bằng P/Invoke. Bạn cũng có thể sử dụng C++/CLI để viết một assembly, nó truy cập vào các phần đầu của native và sử dụng các thư viện nguyên gốc. Đối với lỗi liên kết, bạn đã cung cấp không đủ thông tin để chúng tôi biết, điều gì là sai. – Spook
Tôi đã chỉnh sửa bài đăng, khi tôi cố gắng viết bất kỳ phương pháp nào sử dụng OpenCV tôi gặp phải lỗi mà tôi đã đăng ở trên để dll không thể được tạo nhưng khi tôi chỉ sử dụng cout và cin không có lỗi nào xuất hiện và dll đã được tạo thành công –