según este post y de la documentación de OpenCV, puedo inicializar y acceder a cada elemento de una estera multidimensional.acceder a la submatriz de una estera multidimensional en OpenCV
En realidad, primero codifiqué en MATLAB y ahora necesito convertir a OpenCV. La matriz MATLAB admite acceso a submáquinas como: a (:,:, 3) o b (:,:, 3: 5)
¿Se puede hacer esto en OpenCV? por lo que yo sé, esto se puede hacer con Mat 2D. ¿Qué tal más de 2D?
Edit01: Además, con Mat multidimensional, las propiedades cols y las filas no son suficientes para caracterizar 3 tamaños de la matriz. Hay casos con una dimensión mayor a 3. ¿Cómo almacenar estas propiedades?
Edit02:
// create a 100x100x100 8-bit array
int sz[] = {100, 100, 100};
Mat bigCube(3, sz, CV_8U, Scalar::all(0));
que renunciar a la idea del acceso sub-matriz con OpenCV Mat. Tal vez, no es compatible con OpenCV. Pero a partir de este código de muestra, el constructor recibe la 3ª dimensión de 'sz'. ¿A qué propiedad de Mat se le pasa esta tercera dimensión? probablemente en este caso, rows = 100, cols = 100, the other ?? = 100 estoy perdido con la documentación OPENCV
Edit03: el seguimiento de la clase Mat de la fuente OpenCV que he encontrado la definición del constructor en Edit02 de mat.hpp:
inline Mat::Mat(int _dims, const int* _sz, int _type, const Scalar& _s)
: flags(0), dims(0), rows(0), cols(0), data(0), refcount(0),
datastart(0), dataend(0), datalimit(0), allocator(0), size(&rows)
{
create(_dims, _sz, _type);
*this = _s;
}
la siguiente pregunta es dónde y cómo se define la función "crear" aquí? => trazando esta definición Mat en OpenCV probablemente me ayude a modificar/personalizar mis propias características en la matriz Mat
PD: discúlpeme si mi publicación está escrita demasiado desordenada !! Soy un programador novicio, tratando de resolver mi problema de programación. Por favor, siéntete libre de corregirme si mi enfoque no es bueno o correcto. ¡¡Gracias!!
Tengo core.hpp para ver todas las declaraciones de constructor, incluida la de Mat multidimensional. Pero no pude encontrar dónde la definición, me refiero a la codificación de ese constructor, para ver a qué propiedad va la 3ª dimensión. ¿Dónde está ese código fuente? –
Eso estaría allí: /modules/core/src/matrix.cpp. Estoy editando mi respuesta sobre su problema original debajo de –
remi
¿Terminó escribiendo este código? Estoy a punto de tener que hacer lo mismo ... – kmac