Мне нужно инициализировать многоканальную матрицу OpenCV.Я создаю многоканальную матрицу, подобную этой:
cv::Mat A(img.size(), CV_16SC(levels));
, где levels
- это число каналов в матрице, которое может быть где угодно от 20 до 300. Я не могу инициализировать эту матрицу, кроме нуля.
Если я инициализирую матрицу следующим образом
cv::Mat A(img.size(), CV_16SC(levels), Scalar(1000));
Я получаю сообщение об ошибке "Утверждение не выполнено (cn <= 4) в cv :: scalarToRawData".Кажется, что мы можем инициализировать значения только до 4 каналов </p>
Есть ли какой-либо другой метод, доступный в OpenCV для инициализации этой многоканальной матрицы, или я должен вручную инициализировать значения?
Редактировать:Я сделал следующее, чтобы инициализировать эту многоканальную матрицу.Надеюсь, что это поможет тем, кто сталкивается с той же проблемой
for (int j = 0; j < img.rows; ++j) for (int i = 0; i < img.cols; ++i)
{
short *p = A.ptr<short>(j) +(short)i*levels;
for (int l = 0; l < levels; ++l)
{
p[l] = 1000;
}
}