fedor_malashin 1 Жалоба Опубликовано October 14, 2019 Здравствуйте. Пытался ли кто-нибудь создать dll из С++-кода, использующего OpenCV, и использовать её в C++ или C#? Я столкнулся со следующим: Преодолев ошибки, связанные с созданием динамических типов данных в тестовой dll, я подумал, что проблема уже решена. Теперь я могу использовать контейнеры в коде dll, но как только я создаю что-то из OpenCV (я пробовал создать матрицу cv::Mat, заполненную нулями), то функция LoadLibrary возвращает нулевой указатель. Работаю в x64 Debug, opencv_world411.dll так же клал в папку проекта. Если потребуется код и его результаты (которые я описал, в принципе, про нулевой указатель), могу потом запостить его. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 14, 2019 Ну так вся OpenCV состоит из DLL, использующих OpenCV Откройте исходники, и сравните с тем что у вас. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
fedor_malashin 1 Жалоба Опубликовано October 14, 2019 Сейчас создал cv::Point и вернул p.x из функции - работает! А что с cv::Mat не так, не пойму.. Исходники посмотрю, спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
idrua 8 Жалоба Опубликовано October 16, 2019 А чем не устраивают готовые пакеты? OpenCvSharp3, например. Там же все уже сделали за вас )) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dimus 1 Жалоба Опубликовано October 16, 2019 В 14.10.2019 at 18:02, fedor_malashin сказал: Работаю в x64 Debug, opencv_world411.dll так же клал в папку проекта. Для Debug нужен opencv_world411d.dll , opencv_world411.dll для Release, может в этом дело. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
fedor_malashin 1 Жалоба Опубликовано October 16, 2019 3 часа назад, Dimus сказал: Для Debug нужен opencv_world411d.dll , opencv_world411.dll для Release, может в этом дело. Опечатался тут, но в проекте лежит нужная версия. 3 часа назад, idrua сказал: А чем не устраивают готовые пакеты? OpenCvSharp3, например. Там же все уже сделали за вас )) В проекте на C# используется OpenCvSharp2, там почему-то функция solvePnP работает неправильно, а она мне нужна. Коллега говорит, что пробовал ее и в 3 версии, так же вернула не то. Весь проект использует IplImage, а в новых версиях, как я понимаю, cvMat. Даже если это не брать в расчет, странно то, что если в коде использовать вещь типа Point.x, то dll подключается, как надо. А если cv::Mat, то генерируется исключение. Может, надо что-то прописать в настройках проекта дополнительно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
fedor_malashin 1 Жалоба Опубликовано October 16, 2019 3 часа назад, Dimus сказал: Для Debug нужен opencv_world411d.dll , opencv_world411.dll для Release, может в этом дело. Мда... Посмотрел не в ту директорию в дабл коммандере, и действительно, релизная версия лежала))) Все заработало сейчас, матрица создается )) Благодарю. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах