Доступ к размерам в цветной гистограмме openCV

Я новичок в openCV, и вот мое первое сомнение в предметах матричного измерения.

Я вычисляю гистограмму цветного изображения с помощью функции резюме :: calcHist (..).

Результирующая матрица, как я и ожидал, является трехмерной матрицей. Я предполагаю, что третье измерение означает цвет для каждого цветового канала RGB, но я не знаю, как получить к ним доступ. После его вычисления у меня есть матрица из 3 измерений и 1 канала, и я бы хотел иметь доступ к каждому измерению.

Я думаю, что функция split здесь не поможет, поскольку она разбивает матрицу только на свои каналы.

Отладка Я получаю следующую соответствующую информацию из матрицы 3Dhistrogram:

Размеры: 3,
Ряды: -1,
Столбцы: -1,
Размер: 256

Я знаю, что могу получить индивидуальную цветовую гистограмму, сначала разбив изображение на 3 канала, а затем вычислив 1D гистограмму каждого из них, но мне интересно узнать, как работают размеры в openCV.

Заранее спасибо!

1

Решение

Вот из ссылки Opencv на класс MatND:

   // return pointer to the element (versions for 1D, 2D, 3D and generic nD cases)
uchar* ptr(int i0);
const uchar* ptr(int i0) const;
uchar* ptr(int i0, int i1);
const uchar* ptr(int i0, int i1) const;
uchar* ptr(int i0, int i1, int i2);
const uchar* ptr(int i0, int i1, int i2) const;
uchar* ptr(const int* idx);
const uchar* ptr(const int* idx) const;

// convenient template methods for element access.
// note that _Tp must match the actual matrix type -
// the functions do not do any on-fly type conversion
template<typename _Tp> _Tp& at(int i0);
template<typename _Tp> const _Tp& at(int i0) const;
template<typename _Tp> _Tp& at(int i0, int i1);
template<typename _Tp> const _Tp& at(int i0, int i1) const;
template<typename _Tp> _Tp& at(int i0, int i1, int i2);
template<typename _Tp> const _Tp& at(int i0, int i1, int i2) const;
template<typename _Tp> _Tp& at(const int* idx);
template<typename _Tp> const _Tp& at(const int* idx) const;

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

0

Другие решения