Своего рода основной вопрос. Я не знаю, что это за структура.
img.at<uchar>(i,j)
должно быть? Я пытаюсь найти определение at
, но не могу этого понять. а что означает этот синтаксис?
<uchar>
Точно так же, что подразумевается под
img.at<cv::Vec3b>(row,col)[channel]
Да, Mat
класс матрицы для манипулирования данными матрицы Я понимаю поведение этих строк, но не могу понять теорию, стоящую за ними?
Что означает этот синтаксис?
img.at<cv::Vec3b>
at
перегруженная шаблонная функция C ++ класса cv::Mat
,
< >
это синтаксис для вызова шаблона C ++.
img.at<uchar>(i,j)
Выше строка означает, что мы получаем доступ к пикселю (i,j)
и указав его тип данных, который будет unsigned char
,
На простом английском языке выберите 1 пиксель из индекса (i, j)
то есть номер строки я и номер столбца J.
img.at<cv::Vec3b>
Вышеуказанное используется для 3-канального изображения. То же, что и первый, но выборка значений пикселей всех трех каналов. Возвращаемое значение Vec3b
структура, содержащая 3 значения, по одному на каждый канал.
Других решений пока нет …