How to appropriately destroy mxArray created by ocvMxArrayFromImage_{DataType} functions
Mostrar comentarios más antiguos
Dear all, I am trying to integrate Matlab code into C++ program with OpenCV. I found the program will gradually increase memory usage.
After some working around, I believe the problem has something to do with destroying mxArray. I wrote a simple test program with an infinite loop that keeps create mxArray and destroy it, as shown below
cv::Mat imageMat = cv::imread(imagePath);
while(true)
{
mxArray* imageMXA = ocvMxArrayFromImage_uint8(imageMat);
mxDestroyArray(imageMXA);
}
this program will gradually increase memory usage.
However, another test program that creates mxArray with mxCreateNumericArray does not have such problem. the code is shown below
while(true)
{
mxArray* imageMXA = mxCreateNumericArray(dimensionNumber, dimensions, mxDOUBLE_CLASS, mxREAL);
mxDestroyArray(imageMXA);
}
It seems that there is something wrong in the code that destroy the mxArray created by ocvMxArrayFromImage_{DataType} functions. My question is, how should I appropriately destroy such mxArray?
7 comentarios
James Tursa
el 28 de Mzo. de 2018
Editada: James Tursa
el 28 de Mzo. de 2018
You would probably need to see the code for ocvMxArrayFromImage_uint8 to answer your question, and you don't have that. However, it looks like it is a simple nD transpose and reordering operation, so it wouldn't be too difficult to write your own conversion routine if needed.
Eddie Chiou
el 29 de Mzo. de 2018
Editada: Eddie Chiou
el 29 de Mzo. de 2018
Eddie Chiou
el 29 de Mzo. de 2018
James Tursa
el 29 de Mzo. de 2018
I can't offer any advice unless I see your code.
Eddie Chiou
el 29 de Mzo. de 2018
James Tursa
el 29 de Mzo. de 2018
Is channels always either going to be 1 or 3?
Eddie Chiou
el 29 de Mzo. de 2018
Respuestas (0)
Categorías
Más información sobre OpenCV Support en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!