Согласно OpenCV.js документам для изменения значения пикселя вы можете использовать 3 метода:
- Прямая обработка данных
at()
семейство методов ptr()
семейство методов
В заголовке раздела документов сказано: «Доступ и изменение значений пикселей», в нем приведены примеры для получения значения, но не для его изменения.,Проблема в том, что в то время как в C ++ этот код, использующий методы at
или ptr
, работает:
mat.at<type>(row, col) = value;
Эквивалент в javascript недопустим и дает Invalid left hand side in assignment expression
:
mat.floatAt(row, col)) = value;
Я мог бы заставить его работать, используя метод прямой манипуляции данными с:
mat.data[row * this.cols * this.channels() + col * this.channels()] = value;
Но этот метод не работает взначения пикселей, но в лежащей в основе структуре данных массива, где пиксель может охватывать более одного индекса массива, поэтому не подходит для моего варианта использования.
Как можно изменить значение пикселя в позиции [row, col] в CvMat с помощью OpenCV.js?