en OpenCV 2 y posterior hay el método Mat::resize
que le permite agregar cualquier número de filas con el valor predeterminado a su matriz, ¿existe algún método equivalente para la columna? y si no, ¿cuál es la forma más eficiente de hacerlo? GraciasOpenCV Agregue columnas a una matriz
Respuesta
Uso cv::hconcat
:
Mat mat;
Mat cols;
cv::hconcat(mat, cols, mat);
Y no intente encontrar documentos para esta función. No está documentado. –
El código de encabezado está aquí: https://github.com/Itseez/opencv/blob/master/modules/core/include/opencv2/core.hpp#L968. Para completar, la concatinación vertical se puede hacer con 'vconcat()' y también 'cv :: Mat :: push_back()' –
Documentación: http://docs.opencv.org/trunk/d2/de8/group__core__array.html –
Peor escenario: rotate the image by 90 degrees y use Mat::resize()
, haciendo que las columnas se conviertan en filas.
Ok, pero ese es el peor de los casos, ¿qué pasa si mi Mat contiene CV_64FC1 y el tamaño es demasiado grande (500 * 500) y tengo que hacer esto para un gran número de matrices, así que no quiero incluir el proceso de rotación o transposición dos veces de matrices tan grandes en el algoritmo. – AMCoded
Como dije, ** peor caso **. Si supiera el mejor caso, lo habría compartido contigo. – karlphillip
Como OpenCV almacena elementos de las filas de la matriz secuencialmente, uno tras otro no hay un método directo para aumentar el tamaño de la columna, pero me brindo dos soluciones para el asunto anterior, Primero use el siguiente método (el orden de los elementos de copia es menos que otros métodos), también podría usar un método similar si quiere insertar algunas filas o columnas no específicamente al final de las matrices.
void resizeCol(Mat& m, size_t sz, const Scalar& s)
{
Mat tm(m.rows, m.cols + sz, m.type());
tm.setTo(s);
m.copyTo(tm(Rect(Point(0, 0), m.size())));
m = tm;
}
Y el otro, si usted insiste no incluir incluso la copia de orden de los datos en sus algoritmos, entonces es mejor para crear su matriz con el gran número de filas y columnas y empezar el algoritmo con la submatriz más pequeño aumente el tamaño de su matriz por el método Mat::adjustROI
.
- 1. Matriz de entrada a opencv kmeans clustering
- 2. Agregue nombres de columnas mediante programación a numpy ndarray
- 3. Agregue 2 valores a 1 clave en una matriz PHP
- 4. Flatten OpenCV/Numpy matriz
- 5. Agregue una restricción única en columnas múltiples con FluentNHibernate
- 6. Agregue un poco de procesamiento de OpenCV a una secuencia de video gstreamer
- 7. conversión entre matriz OpenCV y matriz int
- 8. ¿Cómo agrego filas y columnas a una matriz NUMPY?
- 9. Acceso matriz opencv CV_32S elemento
- 10. inicializar una Mat OpenCV con una matriz 2D
- 11. Enviando columnas de una matriz usando MPI_Scatter
- 12. Convertir el bucle de matriz OpenCV a JavaCV
- 13. Agregue textViews dinámicamente a linearLayout
- 14. Agregue columnas que no admiten nulos a una tabla existente en el servidor SQL?
- 15. OpenCV 2.3: Convertir Mat a matriz de píxeles RGBA
- 16. Enviando datos de la matriz OpenCV a Matlab Engine, C++
- 17. Agregue una matriz de botones a un GridView en una aplicación de Android
- 18. Agregue imágenes dinámicamente a jquery
- 19. imprimir los valores de una matriz (MAT) en OpenCV C++
- 20. almacenar objetos cvMat en una matriz - OpenCV - iPhone
- 21. Cree una matriz de kernel svm personalizada con opencv
- 22. MVC3: agregue una carpeta a los controladores?
- 23. Agregue una fecha en Linq a entidades
- 24. Agregue dinámicamente elementos a una listaVer Android
- 25. OpenCV cv :: Mat 'unos' para matriz multicanal?
- 26. acceder a la submatriz de una estera multidimensional en OpenCV
- 27. ¿Cómo obtener el número de columnas en una matriz?
- 28. Cómo obtener una matriz de píxeles y remodelar la matriz en openCV
- 29. ¿Cómo puedo iterar filas y columnas de una matriz multidimensional?
- 30. ¿Cómo se ordena una matriz en varias columnas?
que tenía una mirada al documento en línea y parece que no tiene una función para añadir columnas. http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html?highlight=mat#Mat::resize –