javacpp-opencv图像处理补充篇:关于在树莓派和ubuntu等linux发行版平台上使用opencv原生api调用摄像头等设备时虚拟机crash的说明

出现的问题:

代码在windows上调试运行正常,发布到树莓派和ubuntu后出现jvm虚拟机crash的情况。
目前经过群里小伙伴们的反复复现和反馈,只有在使用opencv原生api调用时可以复现虚拟机crash的情况。

出现问题的文章:

opencv图像处理系列之3:使用opencv原生方法遍历摄像头设备及调用(方便多摄像头遍历及调用,相比javacv更快的摄像头读取速度和效率,方便读取后的图像处理)

问题原因

1、可能是由于opencv的某些api没办法保证跨平台一致性
2、新版本的javacv编译的opencv库问题

解决办法

1、降低javacv版本到1.4.x版本

2、尽量避免使用原生opencv的api,尽量切换使用javacv的api来保证跨平台的一致性。

比如文中使用原生videocapture调用摄像头,可以使用OpenCVFrameGrabber grabber=new OpenCVFrameGrabber(0);进行替代,就可以保证全平台可用。

VideoCapture vc=null;
上一篇:2021年都快过半了,你还在傻乎乎的用python搞图像处理和人脸识别?


下一篇:JavaCV开发详解之27:使用javacv把视频切割成多个视频分片文件,以mp4为例,把视频切割成MP4分片文件