利用html5、websocket和opencv实现人脸检测 (二)


前一篇的代码在执行时,java.exe占用内存会快速上涨:

在4G内存电脑上,单个连接,会持续上涨到2G多,然后减到1G多,如此循环。

 

经过一些删减定位,可以确定问题由public byte[] process(byte data[])函数导致。

进一步分析,至少IplImage的使用是一个问题:

IplImage originalImage = cvDecodeImage(opencv_core.cvMat(1, data.length, CV_8UC1, new BytePointer(data)));

Mat videoMat = new Mat(originalImage);

这里,IplImage主要是作为从byte[]转换为Mat时的过渡,修改为:

Mat videoMat = imdecode(new Mat(opencv_core.cvMat(1, data.length, CV_8UC1, new BytePointer(data))), 1);

 

修改之后,内存仍然会持续上涨,但速度很慢。可能还有其他的问题,后续继续处理。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM