Escritura y conversión de tipo de imagen OpenCV: Mat e IPLImage

Opencv Image Type Writing

Transferido de: https://blog.csdn.net/qq_37764129/article/details/81271660
OpenCV1 se basa en el formato de almacenamiento de imágenes IplImage * definido por la interfaz C, que expone directamente la memoria. Si olvida liberar la memoria, se producirá una pérdida de memoria. Comenzando con OpenCV2, comencé a usar la clase Mat para almacenar imágenes. La nueva interfaz C ++, cv :: Mat reemplaza el CvMat e IplImage originales de estilo c. Actualmente, la versión 2.0 también es compatible con la interfaz de c.
El cv :: Mat de C ++ unifica los conceptos de matriz e imagen en relación con la interfaz de c. De hecho, la matriz y la imagen son iguales. Dado que cv :: Mat es una clase de C ++, también tiene algunas características relacionadas. Por ejemplo, la liberación de la memoria. En C ++, cuando un objeto va más allá de su ámbito de uso, el destructor se llama automáticamente para su destrucción. En c, si asigna un espacio de memoria a una variable de tipo CvMat usando una función como cvCreateImage, debe llamar a la función correspondiente cvReleaseImage para liberarla sin destruirla automáticamente. Si no hay una versión correspondiente, provocará una pérdida de memoria.

La diferencia entre Mat e IplImage es la siguiente:
imagen
Programa lplImage:



|_+_|

Programa de alimentación:



|_+_|

imagen



Blog de referencia

https://blog.csdn.net/lanjingling09/article/details/27707049

https://blog.csdn.net/xumi13/article/details/52737563



https://blog.csdn.net/ayuee1992/article/details/38122609