Как создать EmguCV IInputArray из массива Color32? - PullRequest
0 голосов
/ 11 марта 2020

Моя цель заключается в следующем: я хочу обнаружить и декодировать QR-код из входного изображения в Unity. До сих пор у меня есть реализация, использующая zxing, которая прекрасно работает. Тем не менее, я хочу сравнить обнаружение с детектором opencv qr. Поскольку в прошлом я работал с EmguCV над проектом WPF, я хотел попробовать его для решения этой проблемы.

Моя проблема в том, что я получаю входное изображение с моей камеры в виде Color32[] массива:

Color32[] textureData = usedCamera.GetPixels32();

Согласно документации класс QRCodeDetector в EmguCV нуждается в интерфейсе IInputArray в качестве аргумента, например, массив Mat или Point, я думаю.

Вопрос в том, как быстро преобразовать массив Color32[] (без зацикливания на пикселях). Я попытался запустить из этого вопроса здесь (с кодом c ++, написанным в c#, поскольку я использую EmguCV вместо OpenCV), однако мне не удается использовать указатели в C#, так как я получить следующую ошибку:

Указатели и буферы фиксированного размера могут использоваться только в небезопасном контексте

Любая помощь для выполнения этого преобразования высоко ценится. Ключ к этому должен быть быстрым, так как я делаю обнаружение кадр за кадром в моем приложении (поэтому отслеживаю qr-код).

...