Sé que esto puede ser muy rudimentario, pero soy nuevo en OpenCV. ¿Podría decirme cómo obtener el tamaño de una matriz en OpenCV? Busqué en Google y todavía estoy buscando, pero si alguno de ustedes sabe la respuesta, por favor ayúdenme.
Tamaño como en número de filas y columnas.
¿Y hay alguna manera de obtener directamente el valor máximo de una matriz 2D?
opencv
opencv-mat
Lakshmi Narayanan
fuente
fuente
Tenga en cuenta que, aparte de las filas y columnas, hay varios canales y tipos. Cuando está claro qué tipo es, los canales pueden actuar como una dimensión adicional como en CV_8UC3, por lo que abordaría una matriz como
Entonces el tamaño en términos de elementos de tipo elemental es M.rows * M.cols * M.cn
Para encontrar el elemento máximo uno puede usar
fuente
Para matriz 2D:
mat.rows: número de filas en una matriz 2D.
mat.cols: número de columnas en una matriz 2D.
O: C ++: Size Mat :: size () const
El método devuelve un tamaño de matriz: Tamaño (cols, filas). Cuando la matriz es más de 2 dimensiones, el tamaño devuelto es (-1, -1).
Para la matriz multidimensional, debe usar
Tenga en cuenta que aquí 2 para el eje z, 3 para el eje y, 4 para el eje x. Por x, y, z, significa el orden de las dimensiones. El índice x cambia más rápido.
fuente
Mat::size()
método miembro, sino unaMat::size
variable miembro de tipoMatSize
. Este último sobrecarga al operador de paréntesisMatSize::operator()
para devolver unSize
objetoUn ejemplo completo de código C ++ puede ser útil para los principiantes.
fuente
Si está utilizando los envoltorios de Python, entonces (suponiendo que el nombre de su matriz sea mat ):
mat.shape le proporciona una matriz del tipo- [alto, ancho, canales]
mat.size te da el tamaño de la matriz
Código de muestra:
fuente