Wiem, że to może być bardzo elementarne, ale jestem nowy w OpenCV. Czy mógłbyś mi powiedzieć, jak uzyskać rozmiar matrycy w OpenCV ?. Poszukałem w Google i nadal szukam, ale jeśli ktoś z was zna odpowiedź, proszę o pomoc.
Rozmiar zgodny z liczbą wierszy i kolumn.
A czy jest sposób na bezpośrednie uzyskanie maksymalnej wartości macierzy 2D?
opencv
opencv-mat
Lakshmi Narayanan
źródło
źródło
Zwróć uwagę, że oprócz wierszy i kolumn istnieje wiele kanałów i typów. Kiedy jest jasne, jaki jest typ, kanały mogą działać jako dodatkowy wymiar, jak w CV_8UC3, więc możesz zaadresować macierz jako
Czyli rozmiar pod względem elementów typu elementarnego to M.rows * M.cols * M.cn
Aby znaleźć maksymalny element, którego można użyć
źródło
Dla macierzy 2D:
mat.rows - liczba wierszy w tablicy 2D.
mat.cols - Liczba kolumn w tablicy 2D.
Lub: C ++: Size Mat :: size () const
Metoda zwraca rozmiar macierzy: Size (kolumny, wiersze). Gdy macierz jest więcej niż 2-wymiarowa, zwracany rozmiar to (-1, -1).
W przypadku macierzy wielowymiarowej musisz użyć
Uwaga, tutaj 2 dla osi z, 3 dla osi y, 4 dla osi x. Przez x, y, z oznacza kolejność wymiarów. Indeks x zmienia się najszybciej.
źródło
Mat::size()
metody składowej, a raczejMat::size
zmienna składowa typuMatSize
. Ta ostatnia przeciąża operator nawiasów,MatSize::operator()
aby zwrócićSize
obiektKompletny przykład kodu w C ++ może być pomocny dla początkujących
źródło
Jeśli używasz opakowań Pythona, to (zakładając, że nazwa twojej macierzy to mat ):
mat.shape daje tablicę typu- [wysokość, szerokość, kanały]
mat.size podaje rozmiar tablicy
Przykładowy kod:
źródło