2013-11-13 3 views
2

Как получить значение пикселя в OpenCV без знания глубины канала? Например, в следующем примере я должен заранее знать, что матрица a имеет три канала.Значение пикселя доступа матрицы A

Mat a; 
Vec3b pixel=a.at<Vec3b>(0,0); 

Как написать функцию, которая может читать как 1-канальную матрицу, так и 3-канальную матрицу? Я планирую держать векторы объектов в матрице, поэтому он также может быть произвольным постоянным числом.

+0

http://stackoverflow.com/ вопросы/11511715/OpenCV индексация Проходной-мат-оф-неизвестного типа –

ответ

4

Взгляните на документацию для at. Если вы хотите, чтобы выбрать канал из 3 канала с плавающей точкой изображения с вы могли бы сделать это так:

float pixel = img.at<float>(i,j,k); //i - row, j - col, k - channel 

Вы можете проверить количество каналов с помощью

int nChannels = img.channels(); 
Смежные вопросы