Я использую обертку 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