Исходя из моего личного опыта, я занимался вопросами стереоскопического зрения, лучший способ общения с openCV - через собственную оболочку, вы можете поместить свой метод в c ++ и вызвать его из c #, что даст вам 1 вызов native. более быстрый код, и потому что Emgu хранит данные OpenCV, также возможно создать изображение с помощью emgu, обработать его естественным образом и снова наслаждаться обработанным изображением в c #.
Методы get / set выглядят как методы Gdi GetPixel / SetPixel, и, согласно документации, они «медленные, но безопасные».
Для того, чтобы остаться только с Emgu, в документации сказано, что если вы хотите выполнить итерации по пикселям, вы должны получить доступ к свойству .Data
:
Безопасный (медленный) путь
Предположим, вы работаете над изображением. Вы можете получить пиксель в y-й строке и x-м столбце, вызвав
Bgr color = img [y, x];
Установить пиксель в y-й строке и x-м столбце также просто
img [y, x] = цвет;
Быстрый путь
Значения пикселей изображения хранятся в свойстве Data, трехмерном массиве. Используйте это свойство, если вам нужно перебрать значения пикселей изображения.