Как я могу получить и установить значения пикселей изображения Emgucv Mat? ⇐ C#

Место общения программистов C#
Anonymous
Как я могу получить и установить значения пикселей изображения Emgucv Mat?

Сообщение Anonymous »

Я использую обертку Emgucv 3.0.0 в библиотеку OpenCV 3.0. Я использую класс Mat в нескольких местах. Вот пример одного канала, изображения 8x8, изготовленное из двойного < /code> значений: < /p>

Код: Выделить всё

Mat image = new Mat(8, 8, DepthType.Cv64F, 1);
Изображение класс предоставляет разумные средства для получения и настройки значений пикселей, а метод идентичен для класса Matrix , но он не кажется таким очевидным для класса Mat . Единственный способ, которым я выяснил, как установить отдельный пиксель, - это использование маски: < /p>

Код: Выделить всё

// set two pixel values, (0,0) to 9.0, (2, 3) to 42.0

Matrix mask = new Matrix(8,8);
mask.Data[0, 0] = 1;
image.SetTo(new MCvScalar(9.0), mask);

mask = new Matrix(8,8);
mask.Data[2, 3] = 1;
image.SetTo(new MCvScalar(42.0), mask);
< /code>

Это  чувствует < /em>, как будто это должно быть две строки, а не шесть, поэтому я чувствую, что что -то упускаю.  Вещи становятся еще более сложными, когда мат 
- более одного канала, потому что матрица - это только 2D, поэтому маска должна использоваться для установки пикселя на каждом канале. Как я могу установить пиксели одним вызовом метода?

Подробнее здесь: https://stackoverflow.com/questions/322 ... -mat-image

Вернуться в «C#»