Передача изображения из OpenCV / C в .NET C#

#c# #opencv #interop #wrapper

#c# #opencv #взаимодействие #оболочка

Вопрос:

Мне нужно написать некоторый код для считывания изображения на C #, которое обрабатывается в OpenCV / C . C # не понимает форматы изображений OpenCV, поэтому мне нужно выполнить какие-то преобразования, прежде чем я смогу написать оболочку в .NET. Каков наилучший подход для возврата изображения с C на C #? То есть, должен ли я предоставлять необработанные байты и размеры изображения, которые можно было бы прочитать на C #, или есть какой-либо лучший подход?

Спасибо за ответ.

Ответ №1:

Напишите оболочку C / CLI, которая создает растровое изображение и возвращает его.СЕТЕВОЙ клиент.

или

Если вы не ожидаете, что размер изображения будет больше нескольких мегабайт, и нет строгих требований к производительности с точки зрения no. при параллельных вызовах вы также можете вернуть байт *, сохранив изображение в растровом изображении inmemory

или

Если это имеет смысл в вашем сценарии, вызывающий объект также может указать путь к файлу, в котором изображение может быть сохранено после обработки. Однако это не очень удобно для повторного использования.

или

Вы можете записать изображение в ILockBytes и вернуть указатель на него. Клиент .NET может читать из этого. Это зависит от Windows

Комментарии:

1. спасибо за ответ. Вероятно, вариант 1 был бы возможен, или я мог бы перейти к варианту 2.

Ответ №2:

Или, если вы просто хотели использовать исключительно C #, вам следует проверить EmguCV. Они упаковали большую часть библиотеки для использования с C #.